0

Heroku に Rails アプリをデプロイしています。多くのサンプルで提供されている Twitter アプリです。Heroku にデプロイされた Rails アプリを git する方法を学ぼうとしていました。とにかく、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

ご迷惑をおかけして本当に申し訳ありませんでした。何らかの理由で、非常によく似た名前の 2 つのコントローラーがありました。それは間違ったものを使用していましたが、私はそれに気づきませんでした。コードを切り替えたところ、動作するようになりました。入力していただきありがとうございます!

于 2012-07-04T23:49:50.377 に答える