0

我正在建立一个工作委员会,工人可以在其中投标工作,老板可以接受他们拥有的每项工作的单一投标,从而创建一个“任务”。在工作展示页面上,已经构建的投标可以被老板接受。除其他外,我有以下关联:

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。

4

0 回答 0