2011-03-07 67 views
1

我有2个型号。Restful Rails问题

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但是CompanyAccount。

= form_for [@company, @account] do 

解决此名称不匹配的最佳方法是什么?

谢谢。

+0

当您在routes.rb中使用resources:company_accounts时会发生什么情况? – picardo 2011-03-07 08:51:16

回答

1

的问题是在你的routes.rb文件,

的代码应该仍然是

 
resources :companies do |c| 
    c.resources :company_accounts 
end 

不要紧,你的名字是什么在您的关联has_many < association_name>中,资源名称应始终反映实际模型的名称,而不是ActiveRecord关联。希望能帮助到你!

0

你可以尝试使用:

= form_for @account, :as => :company_account, :url => company_account_path(@company, @account)