私は、このように学生モデルに接続されている分類済みモデルを持っています
分類された.rb
belongs_to :student
私の学生モデルでは
has_many :classifieds
クラシファイド テーブルには以下が含まれますa column for student_id
Railsコンソールに向かうとき
次のようにして、その特定の学生レコードの新しい分類を作成できます
Student.find(19).classifieds.create(:ad_title => "blah", :ad_content => "blah", :location => "blah")
レコードは学生の観点で作成されたため、学生 ID が自動的に生成されます。
今問題は、ビューに新しいメソッドと作成メソッドと新しいフォームを備えた分類コントローラーがあることです
クラシファイド広告の観点から新しい広告を作成しています ここにフォームがあります
<div>
新广告: <br><br>
<%= simple_form_for @advertisement do |f| %>
<%= f.input :ad_title, label: "Title" %><br>
<%= f.input :ad_content, label: "Content"%><br>
<%= f.input :location, label: "Location"%><br>
<%= f.input :student_id, label: "Your Student ID"%><br>
<%= f.button :submit, "Add an Advertisement" %>
<% end %>
</div>
問題は、その特定のレコードがインデックスに表示されるためには、student_id が存在する必要があり、私のユーザーは自分の ID を知らないことです。
フォームを使用して生徒の立場で分類を作成するにはどうすればよいですか
私は学生のコントローラーに行き、このようなメソッドを追加することを検討しています
def create_classified_ad
@student = Student.find(params[:id])
@classified = @student.classified.create(params[:classified])
end
デバイスを使用しているので、ユーザーセッションはありますか? セッションがどのように機能するのか完全にはわかりません。ログイン後に特定の生徒を見つけて、その生徒にフォームからの入力を使用して案内広告を作成させて、レコードが正しく作成されるようにしますか?
質問は、フォームを使用してフックアップされたテーブルにデータを正しく挿入する方法に似ていますか? (単純な関係のないテーブルにデータを挿入するだけではありません)