RoR未定义方法'to_datetime'取决于辅助方法的顺序

时间:2013-12-29 03:02:26

标签: ruby-on-rails ruby view-helpers

我遇到了一个非常奇怪的问题;我收到此错误

  

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

根据放置渲染的顺序,我发现这个错误是没有意义的。所以我真的想知道为什么渲染器的顺序很重要?

1 个答案:

答案 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对象。