我在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>');
答案 0 :(得分:0)
有关如何获取更多信息并弄清楚发生了什么的一些建议:
答案 1 :(得分:0)
我非常抱歉打扰了你。无论出于何种原因,我有两个名字非常相似的控制器。它使用了错误的,我没有意识到。我切换了代码,现在它可以工作了。感谢您的投入!