宁静的铁路问题

时间:2011-03-07 08:37:36

标签: ruby-on-rails rest

我有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

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

感谢。

2 个答案:

答案 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)