我遇到了一个非常奇怪的问题;我收到此错误
nil的未定义方法`to_datetime':NilClass“
render 'modal'
位于render 'post'
之前的show.html.erb
,而不是<div class="page-header">
<h2>Indlæg af <%= @user.first_name %></h2>
</div>
<% if current_user == @user %>
<%= render 'modal' %>
<% end %>
<%= render 'post' %>
之后:
{{1}}
我已将意见附加在下面的要点中:
要点:https://gist.github.com/czepluch/8166841
根据放置渲染的顺序,我发现这个错误是没有意义的。所以我真的想知道为什么渲染器的顺序很重要?
答案 0 :(得分:0)
请在问题中添加代码,以便在此处保存答案。我怀疑它与你的表格有这个事实有关:
simple_form_for([@user, @user.posts.build]
这意味着构建了一个没有属性的新帖子,以后可能会导致nil错误。反转顺序,直到其他代码运行后才会生成。乍一看我唯一能看到与日期时间有关的事情是:
time_ago_in_words(p.created_at)
如果created_at为nil,由于帖子空,可能会产生错误。
使用表单声明,您可以
simple_form_for([@user, :post])
或类似的东西,以获取新帖子的表单而不实际将空对象附加到@user对象。