简单形式:创建多个对象

时间:2014-08-05 08:14:33

标签: ruby-on-rails ruby-on-rails-4 simple-form

在我的应用程序中,我想添加功能以在一个操作中创建多个对象:

on localhost:3000/bank_accounts/new我有一个用于创建@bank_account

的对象的表单
= simple_form_for @bank_account do |f|
  = f.input :bank_name
  = f.input :account_number
  = f.button :submit

控制器:

  def new
    @bank_account = BankAccount.new
  end

  def create
    @bank_account = BankAccount.create(bank_params)
    if @bank_account.save
      redirect_to root_url
    else
      render 'new'
    end
  end

是否有方法在BankAccount上创建localhost:3000/bank_accounts/new的多个对象?

1 个答案:

答案 0 :(得分:0)

在我看来,你应该遵循'标准'的方式, 可能银行账户属于用户, 所以你有一个属于用户的BankAccount,而一个用户有很多BankAccounts。

在这种情况下,在控制器中你应该有:

@user = User.find 1234 # get a user
10.times do
  @user.bank_accounts.build
end

在视图中,您应该使用循环为所有用户的银行帐户创建字段(您可以使用users_for)

最后,要创建这些银行帐户,您甚至可以使用质量分配:

accepts_nested_attributes_for :bank_accounts

我希望这有助于:)