我刚刚完成了 Hartl 的 RoR 教程,现在正试图弄乱更多的东西。
具体来说:我试图允许用户通过在header.html.erb
文件中呈现部分微博(在每个页面上呈现)来允许用户在任何页面上创建微博。
部分:
<%= form_for(@micropost) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "micropost" %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
这样做会导致部分的第 1 行出现错误:undefined method 'model_name' for NilClass:Class
在我没有通过添加@micropost = current_user.microposts.build
链接到所述视图的控制器方法修复的任何页面上。例如:
#in controllers/static_pages_controller.rb
def about
if signed_in?
@micropost = current_user.microposts.build
end
end
about
当我访问该页面时将修复此错误
我一直在尝试找出一种方法来进行“一揽子修复”,该方法可以在所有页面上使用,而无需在任何地方粘贴声明,有什么想法吗?