我正在建立一个工作委员会,工人可以在其中投标工作,老板可以接受他们拥有的每项工作的单一投标,从而创建一个“任务”。在工作展示页面上,已经构建的投标可以被老板接受。除其他外,我有以下关联:
Job:
has_many :bids
has_many :assignments, :through => :bids
Bid:
has_one :assignment
belongs_to :job
Assignment:
belongs_to :bid
has_one :job, :through => :bid
在职位展示页面:(老板接受投标的表格)
<%= form_for :assignments, :url => '/assignments' do |f| %>
<%= f.submit "Accept Bid", class: "btn btn-mini" %>
<% end %>
在作业控制器中:
Show Action:
@job.bids.each { |bid| bid.build_assignment }
在分配控制器中:
Create Action:
@bid = Bid.find(params[:bid_id])
@assignment = @bid.build_assignment(params[:assignment])
@assignment.save
如您所见,我正在尝试通过与投标的关联来建立分配。问题:
1)当我点击“接受投标”(上面的表格)时,rails 显示一个错误,表明找不到投标(在分配控制器创建操作中)。为什么?
2)我也尝试在表单中执行:<%= f.hidden_field :bid_id %> 并将分配创建操作更改为:@assignment = Assignment.new(params[:assignment]),但现在分配对象不会保存,因为显然没有bid_id。