労働者が仕事の入札を送信できるジョブボードを備えたRails 3アプリを構築しています。私は次の協会を持っています:
Job:
has_many :bids
has_many :workers, :through => :bid
Bid:
belongs_to :job
belongs_to :worker
Worker:
has_many :bids
has_many :jobs, :through => :bid
Show Job Page に労働者が入札できるフォームがあります。コントローラーには、次のものがあります。
Job Controller:
def show
@bid = current_worker.bids.build
end
Bid Controller:
def create
@bid = current_worker.bids.build(params[:bid])
@bid.save
end
上記のコードでは、job_id がないため、送信された入札は正しく保存されません。
1) job_id と worker_id の両方で入札を保存する正しい方法は?
2) (Job Controller の show メソッドから Bid Controller の create メソッドに job_id を渡すのに問題があります) - session 変数で job_id を渡すのは安全ですか?
参考までに、入札フォームは次のようになります。
<%= form_for(@bid) do |f| %>
<%= f.label :min_price, "Minimum Price" %>
<%= f.text_field :min_price %>
<%= f.label :fee %>
<%= f.text_field :fee %>
<%= f.label :comments %>
<%= f.text_area :comments, placeholder: "Comments..." %>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>