我已经研究过这个错误,但我无法解决这个问题。
以下是_micropost_form.html.erb
:
<%= form_for @micropost do |f| %>
<%= render partial: 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_field :content, placeholder: " Caption..." %>
</div>
<%= f.submit "Post", class: "btn btn-primary" %>
<span class="picture">
<%= f.file_field :picture %>
</span>
<% end %>
以下是_error_messages.html.erb
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert alert-danger">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
以下是microposts_controller
def new
@micropost = current_user.microposts.build
@feed_items = current_user.feed.paginate(page: params[:page])
end
答案 0 :(得分:0)
一些想法:
f.object
是否有值?
另外 - 尝试将object
传递给部分:
<%= render partial: 'shared/error_messages', :locals => {:object => f.object} %>
答案 1 :(得分:0)
NameError:未定义的局部变量或方法`object&#39;
您可以通过两种方式呈现部分,render
和render partial:
。但是当您使用partial:
时,需要在locals:
哈希中发送变量。所以这不会起作用
<%= render partial: 'shared/error_messages', object: f.object %>
应该是
<%= render partial: 'shared/error_messages', locals: {object: f.object} %>
或没有partial:
键
<%= render 'shared/error_messages', object: f.object %>
答案 2 :(得分:-3)
您可以更改以下代码
<%= render partial: 'shared/error_messages', object: f.object %>
到
<%= render partial: 'shared/error_messages', object: f.object %>
我希望这对你有所帮助。