我有2个型号。
class Company < ActiveRecord::Base
has_many :accounts, :class_name => "CompanyAccount"
end
class CompanyAccount < ActiveRecord::Base
belongs_to :company
end
在routes.rb
中resources :companies do
resources :accounts
end
我有companies_controller.rb和accounts_controller.rb。
以下行不起作用,因为@ account的类不是Account而是CompanyAccount。
= form_for [@company, @account] do
解决此名称不匹配的最佳方法是什么?
感谢。
答案 0 :(得分:1)
问题出在您的routes.rb文件中,
代码仍然是
resources :companies do |c| c.resources :company_accounts end
您在关联has_many&lt; association_name&gt;中的名称无关紧要,资源名称应始终反映实际模型的名称,而不是ActiveRecord关联。希望它有所帮助!
答案 1 :(得分:0)
您可以尝试使用:
= form_for @account, :as => :company_account, :url => company_account_path(@company, @account)