2012-09-30 3 views
0

У меня есть две модели, Предмет и BidRails 3: создать поле ввода для каждого элемента коллекции (Mongoid)

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 

В Views/цен/индекс Я хотел бы перечислить все элементы в таблице и для каждого элемента поместите поле рядом с ним, в которое люди могут ввести число. В нижней части формы должна быть кнопка отправки для всех записей.

Как это достигается?

Существует много кода, объясняющих, как добавить, например, несколько вопросов к одному опросу (http://railscasts.com/episodes/196-nested-model-form-part-1), но я не мог " t найдите пример, который показывает, как добавить одну новую запись для каждого из существующих элементов коллекции.

ответ

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

+0

работал очень хорошо после того, как я изменил первое line to 'form_for: items do | f |'. Не знаю, почему это было необходимо, хотя ... – migu

+0

Они просто указывают на разные маршруты маршрута. Скорее всего, он пытался указать на обновление @items. http://stackoverflow.com/questions/957204/instance-variable-vs-symbol-in-ruby-on-rails-form-for – cbron

Смежные вопросы