【发布时间】:2012-10-24 13:03:25
【问题描述】:
如何在没有括号和引号的情况下显示 Rails 错误消息?
出现错误消息时,如下所示:
["please fill out domain"]["please fill out email"]
如何删除括号和引号?
型号
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 }
控制器
我指定了模板的网址(请参阅format.html),因为我使用的是不同的控制器
def create
respond_to do |format|
# save form data
@login = Login.new(params[:login])
# if validation fails, throw error messages
if !@login.save
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
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>
【问题讨论】:
-
如果您删除了
@login.errors.to_a中的to_a调用,还有什么问题? -
试试
@login.errors.messages.each do |msg| -
@MurifoX:不幸的是,它并没有改变任何东西
-
@HungryCoder:然后我得到:
[:domain, ["please fill out domain"]][:email, ["please fill out email"]] -
如果它适合你,请检查我的答案
标签: ruby-on-rails