我在 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>');