0

可能重复:
MetaSearch “undefined method `model_name' for NilClass:Class” for global bar search的Rails:::的ActionView ::模板错误(未定义的方法`MODEL_NAME”的NilClass:类):

这是我得到的错误当我尝试去用户的个人资料或个人帖子(/ posts/1)时使用我的更新代码。奇怪的是,它试图访问不同的部分,因为它没有任何喜欢的新用户。

我得到的代码完全如我在以下用户所做的教程中所显示的那样。它适用于追踪用户的用户,但我已将其设置为尝试处理喜欢帖子的用户。

ActionView::Template::Error (undefined method `model_name' for NilClass:Class): 
    1: <%= form_for(current_user.appreciations.find_by_liked_id(@user), 
    2:         :html => { :method => :delete }, 
    3:         :remote => true) do |f| %> 
    4: <div class="actions"><%= f.submit "Unlike" %></div> 
    app/views/users/_unlike.html.erb:1:in  `_app_views_users__unlike_html_erb___769256097635878617_2160255900__1293121959744503098' 
    app/views/users/_like_form.html.erb:6:in `_app_views_users__like_form_html_erb___3308190581058867471_2162903180_52867338942162503' 
    app/views/posts/show.html.erb:7:in `_app_views_posts_show_html_erb___3188789470217885182_2183453320__3624460432667345580' 

这里是几乎所有的东西,如果我错过了东西只是让我知道。我非常感谢能够实现这一目标的洞察力。

http://pastie.org/1824955

回答

0

没有分配一个值到@post变量。您尚未发布包含上述任何部分的视图的代码,但我假设您正在迭代@posts中的帖子,可能会将每个帖子分配给称为post的局部变量。您可能应该将post变量传递给局部变量..., :locals => {:post => post},然后在局部变量中引用post而不是@post

+0

我已经在上面添加了用户的展示视图,很遗憾,当我发布这个问题的时候已经很晚了。我仍然对我将每个分配给一个名为post的局部变量的位置感到困惑?我在哪里放置:locals =>代码将post变量作为本地传递给partials? – 2011-04-22 22:42:32

+0

我试着加入\t <%= render'users/like_form',:locals => {:post => post} if user_signed_in? %>我的_post.html.erb但变量不被传回:( – 2011-04-22 22:49:28

+1

不应该是<%= render:partial =>'users/like_form',...? – 2011-04-23 01:51:29

相关问题