2012-07-01 35 views
0

我的主要目標是通過配置文件ID和公司ID與params哈希表,這樣 更新了2款的Rails:對相關模型記錄嵌套路線

的模型建立起來,地方之間的連接一個配置文件屬於一個公司,而一個公司可能有員工(配置文件),如代碼底部所示。

我想使用員工控制器添加,刪除和顯示與公司的配置文件關聯。

但是當我嘗試這樣做,我發現了以下錯誤

No route matches {:action=>"show", :controller=>"employees", :company_id=>#<Profile id: 1, user_id: 1, first_name: "Aaron", last_name: "Dufall", created_at: "2012-06-30 07:49:00", updated_at: "2012-07-01 14:03:24", deleted: false, company_id: 1>} 

當它想表明我已指定刪除如下

展現在代碼中的方法showen .html.erb

<% @employees.each do |employee| %> 
    <%= link_to full_name(employee), employee %> 
    <%= link_to "Remove", company_employee_path(employee), :method => :delete %> 
<% end %> 

的routes.rb

resources :companies do 
    resources :employees 
    resources :requests do 
    put 'accept', :on => :member 
    end 
end 

company.rb

class Company < ActiveRecord::Base 
    attr_accessible :name 

    has_many :employees, 
      :foreign_key => 'company_id', 
      :class_name => "Profile" 

    has_many :requests, as: :requestable 

    validates :name, presence: true, length: { maximum: 50 }, uniqueness: true 

profile.rb

class Profile < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :company 
    has_many :requests 
    has_many :requested, as: :requestable 

    attr_accessible :first_name, :last_name 


    validates :first_name, presence: true 
    validates :last_name, presence: true 

end 
+0

你爲什麼想要?你想通過PUT動作來更新什麼?你需要知道一個對象的id來更新....也許你可以解釋一下,你想用你的目標url完成什麼。 –

+0

我想更新配置文件模型中的association_id,我將通過當前用戶方法或通過按鈕 –

+0

發送一個哈希值。當您使用DSL命令時,rails總是爲PUT方法添加一個/:id /您的路線中的「資源」命令。這可以通過使用'resource'來改寫。 –

回答

0

使用resource,而不是在routes.rb中resources