[英]How do I create a form for an associated model?
我有一家company
model 和一個bank_account
賬戶 model。
company has_many bank_accounts
和bank_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.