私のコントローラに変数を渡すことができない

私はコメントをform_for持っている。コメントはbelongs_to問題です。 #私のissue#show viewにコメントフォームがあります。これは私のform_forがある場所です。私はissue#show controllerアクションでコメントオブジェクト@commentを作成します。フォームを送信すると、コメント#コントローラの作成アクションが呼び出されます。しかし、issue_idという変数が必要です。私はissue#show issue内にissue_idを持っており、issue_idを持つように@commentオブジェクトを設定することもできます。しかし、コメント#create controllerに渡されるとき、issue_idはparams [:comment]に渡されないので、コメントが作成されて保存されるときにはそこにはありません。ここに私のファイルがあります:

issue#show view:

<%= form_for @comment do |f| %>
    <%= render 'comment_fields', :f => f %>
    <%= f.submit "Submit" %>
<% end %>

issue#show controller:

  def show
    @issue = Issue.find(params[:id])
    @votes = Votership.where(:issue_id => @issue.id)
    @current_user_vote = @votes.where(:user_id => current_user.id).first
    @comment = Comment.new(:issue_id => @issue.id)
  end

コメント#コメントが作成されるコントローラを作成します:

  def create
    @comment = Comment.new(params[:comment])
    @comment.user = current_user
    @comment.save
    redirect_to :back
  end

私はフォームに隠しフィールドを追加しようとしましたが、値のハッシュを作成し続けましたが、キーはissue_idになりますが、隠しフィールドの値を設定する方法はわかりませんでした。これを正しく行うにはどうしたらいいですか?

PSのコメントはissueに属します。問題には多くのコメントがあります。アプリにbelongs_toの問題があります。アプリには多くの問題があります。

1

1 答え

私は実際にあなたの不平を理解するものではありませんが、私はあなたが問題IDをコメントと共に保存しようとしていることから理解しています。フォームの中に隠れたフィールドを持つ必要があります。

<%= f.hidden_field :issue_id %>

これが解決策ではない場合は、plsにお知らせください。

0
追加された
ああ、私!!!私はこれを長い間働かせようとしています...これはうまくいった!ありがとうございました。今...これはこれを行う最善の方法ですか?私はフォームのオブジェクトを準備するときに、issue_idを含んでいます。コメントにその情報を渡すより良い方法がありますか?#コントローラのactioNを作成しますか?
追加された 著者 Matthew Berman,