簡體   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