繁体   English   中英

如何为关联的 model 创建表单?

[英]How do I create a form for an associated model?

我有一家company model 和一个bank_account账户 model。

company has_many bank_accountsbank_account belongs_to company

我有一条路线companies/:company_id/bank_accounts/new生成一个表格:

<%= form_for @bank_account do |form| %>
 (form elements here)
<% end %>

但是当我到达那个页面时,我得到: undefined method bank_accounts_path

这是我在 routes.rb 中的资源路由:

  resources :companies do
    resources :bank_accounts, module: :companies
  end

和我在控制器/公司/中嵌套的 bank_account_controller.rb

我需要我的表单将输入的数据发布到创建操作。 Ruby 应该知道这一点,因为我在新的行动中? 但显然它不识别路线。

如果您需要更多信息,请与我们联系。

所以我改变了一些东西来匹配类似的 model 用于公司联系人。 我知道这些我们在我的应用程序中是相同的概念,因此相同的路由和表单应该可以工作。

首先,我将嵌套的 bank_account_controller.rb 移出公司,然后将其放在应用程序/控制器中。

我将所有 bank_account 视图从视图/公司内的嵌套 bank_account 文件夹中移到了 app/views/bank_accounts 中。

然后我从我的 routes.rb 中删除了模块公司,所以我的公司资源中只有资源:bank_accounts

最后,我将 form_for 更改为: form_with (model: [@company, @bank_account], local: true) do |form| %> form_with (model: [@company, @bank_account], local: true) do |form| %>

Forms 经常让我成为 RoR 的新手。 我需要更好地理解 for 和 with 之间的区别:)

您有嵌套资源,因此您需要

<%= form_for [@company, @bank_account] do |form| %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM