私は Ruby と Rails に非常に慣れていないので、解決できないと思われる問題に遭遇しました。
私のレールアプリには、ホームと呼ばれるインデックスサイトにいくつかのイベントが表示されるユーザーがいます。
ユーザーがこれらのイベントを「ブックマーク」したい場合は、イベントの横にあるボタンをクリックして、それを自分の event_items リストに追加できます。イベントとその逆)
これはすべて正常に機能し、追加機能を実装した方法は次のとおりです。
ホームの index.html.erb 抽出:
<h2>Events</h2>
<% @events.each do |event| %>
<div><%= event.eventtitle %></div>
<%= button_to 'Add Event', event_items_path(event_id: event, user_id: session[:user_id]) %>
<% end %>
button_to メソッドは、event_item リストにイベントを追加するために正常に機能します。このリストは、event_item データベース テーブル内の関連付けの user_id と event_id を記録するだけです。
ここで、ユーザーがイベントに沿ってコメントを event_items db-table に追加できるようにしたいと思います。
text_field 値を event_items_path に渡してコメントを db の event_items テーブルに追加する方法が見つからないようです。
「button_to」メソッドは独自の形式で解決され、text_field 情報を送信できないため、もう使用できないと思います。だから私は新しいフォームを作成しました...しかし、このフォームにtext_field情報をパラメータとして渡すことはできません:
ホーム用の新しい index.html.erb 抽出:
<h2>Events</h2>
<% @events.each do |event| %>
<%= form_for :event_items, url: event_items_path(event_id: event, user_id: session[:user_id]) do |f| %>
<div><%= event.eventtitle %></div>
<%= f.label :event_comment %><br />
<%= f.text_field :event_comment %>
<%= f.submit %>
<% end %>
<% end %>
送信ボタンを押すと、db テーブルに event_item が作成されますが、event_comment はありません。ブラウザで投稿の送信を確認すると、:event_comment が送信されていないようです。
パラメータの :event_id と :user_id にのみアクセスできます。
助けていただければ幸いです。
アップデート
上の新しいフォームから送信ボタンを押すと、:event_comment がフォームと共に送信されることに気付きました。
Chromes DevTools をチェックインすると、Network>>Headers にポスト リクエストがありevent_id
、user_id
クエリ文字列パラメータのevent_comment
下にリストされ、フォーム データの下に次のようにリストされています。event_items[homeprediction]
フォームデータにアクセスする方法を知っている人はいますか? params[:homepredictions] を使用しても、event_items コントローラーでは機能しません。