2012-10-24 2 views
1

대괄호와 따옴표없이 레일스 오류 메시지를 어떻게 표시 할 수 있습니까?레일 : 괄호가없는 오류 메시지

["please fill out domain"]["please fill out email"] 

어떻게 내가 괄호와 따옴표를 제거 할 수 있습니다 오류 메시지가 표시되면

, 그것은처럼 보이는? 내가 다른 컨트롤러

def create 

    respond_to do |format| 
    # save form data 
    @login = Login.new(params[:login]) 

    # if validation fails, throw error messages 
    if [email protected] 
     flash[:error] = @login.errors.to_a if @login.invalid? 
    end 

    # render landingpage 
    format.html { render :template => 'landingpage/index' } 
    format.js { render :action => 'create' } 

    end 

end 

을 사용하고 원인

모델

validates :domain, 
      :presence => { :message => 'please fill out domain'}, 
      :uniqueness => { :message => 'domain already registered', :case_sensitive => true } 
validates :email, 
      :presence => { :message => 'please fill out email'}, 
      :uniqueness => { :message => 'email already registered', :case_sensitive => true } 

컨트롤러

내가 템플릿의 URL을 지정 해요 (format.html 참조) create.js.erb

<% if @login.errors.any? %> 
    // error 

    var error_string = ""; 
    <% @login.errors.values.each do |msg| %> 
    error_string += "<%= msg %>"; 
    <% end %> 

    $("#flash_messages").html(error_string); 

<% else %> 
// no error 
<% end %> 

보기 당신은 전체 오류 메시지를 반복 할 때

<div id="flash_messages"></div> 
+0

'@ login.errors.to_a'에서'to_a' 호출을 제거하면 어떻게됩니까? – MurifoX

+0

시도하십시오. @@login.errors.messages.each do | msg |' – HungryCoder

+0

@MurifoX : 불행히도 아무 것도 바뀌지 않습니다 – Slevin

답변

2

, 이미 받게됩니다 깨끗한 텍스트

당신의 create.js.erb에서

, 아래와 같이 반복 쓰기 :

@login.errors.full_messages.each do |msg| 
+0

감사합니다. 몇 분 안에 대답을 수락 할 수 있습니다 :) – Slevin

관련 문제