Как получить вложенную форму, работающую с formtastic? - PullRequest
0 голосов
/ 14 февраля 2012

Всякий раз, когда я делаю следующее, он не отображает никакие подполя в форме:

= f.semantic_fields_for :transfers do |g|

Если я выделю его, они отображаются, но модель не имеет ни малейшего понятия, что делать с :transfer. Я пытался сделать единственное число для совпадения accepts_nested_attributes_for, но это тоже не сработало.

Сделка:

has_many :transfers
accepts_nested_attributes_for :transfers

Перевод:

belongs_to :transaction

вид:

= semantic_form_for [@user, @transaction], url: url, style: "width: inherit;" do |f|
  = f.semantic_fields_for :transfers do |g|
    = g.inputs do
      = g.input :amount
      %li
        %label
        = "(#{Transfer::TRANSFER_FEE.format :symbol} transaction fee will be added)"
    = g.inputs do
      %li
        %label
        Click
        %input{ type: "image", value: "submit", style: "vertical-align: middle;",
          src: "https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" }
        or fill in your credit card information below
    = g.inputs do
      = g.input :first_name
      = g.input :last_name
      = g.input :card_type, as: :select, collection: [["Visa", "visa"], ["MasterCard", "master"], ["Discover", "discover"], ["American Express", "american_express"]]
      = g.input :card_number
      = g.input :card_verification
      = g.input :card_expires_month, as: :select, collection: (1..12)
      - year = Time.now.year
      = g.input :card_expires_year, as: :select, collection: (year..(year+25))
  = f.inputs do
    %li
      %label
      %input{ type: "submit", value: "Buy", name: "use_cc" }

1 Ответ

0 голосов
/ 17 февраля 2012

Проблема заключалась в том, что я не строил передаточный объект.

В контроллере

@transaction = current_user.transactions.build
@transaction.transfers.build

Я не добавил вторую строку.

...