0

我有两个模型,Item 和 Bid

class Item
  include Mongoid::Document
  field :name, type: String
  has_many :bids 
end

class Bid
  include Mongoid::Document
  include Mongoid::Timestamps::Created
  field :bid, type: Float
  field :bidder, type: String
  belongs_to :item  
end

在视图/价格/索引中,我想列出表格中的所有项目,并为每个项目在其旁边放置一个字段,人们可以在其中输入数字。表单底部应该是所有记录的提交按钮。

如何最好地做到这一点?

有很多代码解释了如何在一项调查中添加例如几个问题(http://railscasts.com/episodes/196-nested-model-form-part-1),但我找不到示例这显示了如何为集合的每个现有元素添加一个新记录。

4

1 回答 1

0

如果您知道要开始使用那里的所有项目,我认为您不需要为每个项目动态添加表单。

又快又脏:

form_for(@items) do |f|
  @items.each do |item|
    f.label item.name
    f.text_field item.name.to_sym, :value => "1"
  end
  f.submit "Submit"
end

我还没有尝试过,并且该代码没有经过测试,但我认为如果你在控制器中做一些工作来构建每个出价应该没问题。与使用 Bid.bid 相比,对于投标类而言,金额也是一个更好的变量名称。

执行此操作(也允许更新)的正确方法是制作嵌套表单,然后使用fields_for方法实际查看实时投标对象: http: //archives.ryandaigle.com/articles/2009/2/1 /what-s-new-in-edge-rails-nested-attributes

于 2012-09-30T19:06:46.973 回答