Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 显示来自其他控制器的验证错误消息_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 显示来自其他控制器的验证错误消息

Ruby on rails 显示来自其他控制器的验证错误消息,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在views/users/show.html.erb中有表单 <% form_for [@user,Wall.new] do |f| %> <%= f.error_messages %> <p> <%= f.label :message %><br /> <%= f.text_area :message,:rows=>4 %> </p> <%= f.hidden_field :sender_id,:

我在views/users/show.html.erb中有表单

<% form_for [@user,Wall.new] do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :message %><br />
<%= f.text_area :message,:rows=>4 %>
</p>
<%= f.hidden_field :sender_id,:value=>current_user.id %>
<p><%= f.submit "Submit" %></p>
<% end %>
一切都很好验证正在工作,保存禁用也会给出错误消息,但这不是正常的方式,它会给出这样的消息

ActiveRecord::WallsController#create中的记录无效

验证失败:消息您必须是朋友才能发送消息

RAILS\u ROOT:C:/Users/MaDOnos/Documents/NetBeansProjects/tttttt


如何以公平的方式显示此错误消息。

我不明白您的问题是什么?AR保存失败,RecordInvalid应该是这样的,您正在收到您提供的验证消息。

看起来您正在调用save!(或创建!),而不是保存(或创建)。前者将引发一个与您得到的异常类似的异常,后者将返回false,并在对象上显示验证错误。

如果您仔细查看,问题就在那里。正常验证错误消息我收到了如下验证错误消息@wall=@user.walls.create!(params[:wall])我使用这个我能做什么?使用create而不是create!验证正在工作,但现在它不会给出任何错误消息,只需刷新页面(使用create)。
def isfriend?
errors.add(:message,'You have to be a friend to send message')  if !Friendship.find(:first,
:conditions=>"requester_id=#{self.sender_id} and accepter_id=#{self.receiver_id} and status='accepted'
or requester_id=#{self.receiver_id} and accepter_id=#{self.sender_id} and status='accepted'")
 end