0

我在 Heroku 上部署了一个 Rails 应用程序。这是在很多示例中给出的 Twitter 应用程序。我试图学习如何 git 部署在 Heroku 上的 Rails 应用程序。无论如何,单击follow按钮时,什么也没有发生。我使用heroku logs并发现这是问题所在:

NoMethodError (undefined method `[]' for nil:NilClass):
app/controllers/user_relationships_controller.rb:6:in `create'

传递的参数是这样的:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"NIiiOgQ4iowSxezGmvLk3oV/vul+4ysWoFrgh/1eOAY=", "user_id"=>{"follower_id"=>"1"}, "commit"=>"follow"}

对应于这一行:

@user = User.find(params[:user_id][:follower_id])

有人可以指出我正确的方向吗?谢谢!

按照要求:

<%= form_for current_user.user.build(:follower_id => @user.id), 
         :remote => true do |f| %>
<div><%= f.hidden_field :follower_id %></div>
<div class="actions"><%= f.submit "follow" %></div>
<% end %>

$('#follow_form').replaceWith("<%= escape_javascript render(:file =>'users/_follow_form') %>");
$('#followers').replaceWith('<div id="followers"><h1><%= "Followers: #{@user.followers.count}" %></h1></div>');
4

2 回答 2

0

关于如何获取更多信息并弄清楚发生了什么的一些建议:

  1. 证明它在本地有效。这似乎还不是 Heroku 特定的问题。
  2. 找出您从哪个教程获得的,因为示例中可能存在语法错误,该示例已在该站点的评论中修复或突出显示。(我们还没有足够的信息来帮助您)
  3. 在调用之前添加一些日志记录,打印出参数。
  4. 将您的代码作为公共 github 存储库推送,并链接回此处。然后我们可以查看您的代码并运行它以查看问题所在。
于 2012-07-02T17:05:21.153 回答
0

非常抱歉我给你带来了麻烦。无论出于何种原因,我有两个名称非常相似的控制器。它使用了错误的,我没有意识到。我切换了代码,现在它可以工作了。感谢您的输入!

于 2012-07-04T23:49:50.377 回答