Вложенные формы и строительные ассоциации - PullRequest
0 голосов
/ 22 декабря 2010

Я работаю над формой добавления в корзину.Это выглядит примерно так:

#Models
Order.rb
  has_many :line_items
  accepts_nested_attributes_for :line_items, :allow_destroy => true

LineItem.rb
  has_one :product
  belongs_to :order

Product.rb
  belongs_to :line_item

Я бы хотел создать форму в product # show, чтобы можно было сразу добавить несколько связанных товаров в заказ / корзину, в основном создать или обновитьпозиция для каждого продукта .

Вероятно, что-то вроде этого в представлении (HAML, чтобы держать это кратко).

-form_for @order do |f|
 - if has_related?
   - for related in @products.related_products
     - f.field_for :line_item do |li_form|
       = li_form.text_field :quantity
       = li_form.hidden_field :product_id
       = related.product_name

Что нужно сделать, чтобы сделать что-то подобное этой работе?

1 Ответ

1 голос
/ 22 декабря 2010

Мне нужно больше информации, чтобы быть уверенным, но кажется, что LineItem belongs_to :product и Product не должны belong_to :line_item, если там действительно нет отношения 1-1 (что не имеет смысла для меня, и нене следует обычному соглашению этих типов систем)

Примечание ** с использованием - до form_for и fields_for устарело в рельсах 3 в пользу =, поскольку форма действительно отображает html

= fields_for :line_items do |li_form| - это синтаксис для отношения has_many

Все остальное зависит от дизайна вашего пользовательского интерфейса.

Надеюсь, это поможет!

...