2013-06-27 98 views
0

假設我有一個用戶表和一個廣告系列表(帶有user_id列),並且每個廣告系列都有一個創建者(誰是用戶)和一個成員列表(用戶)。所以,我有誰belongs_to誰 - 嵌套模型 - 導軌

class UsersController < ApplicationController 
    has_many :campaigns 

class CampaignsController < ApplicationController 

    belongs_to :user 
    has_many :users 
    accept_nested_attributes_for :users 

,但我得到一個錯誤:ActionController::RoutingError (undefined method belongs_to的」爲CampaignsController:類)`

+1

這些方法('has_many','belongs_to','accepts_nested_attributes_for')不要在你的控制器屬於。它們屬於你的模型。我會推薦一些Rails閱讀,例如:http://guides.rubyonrails.org/getting_started.html。 – lurker

回答

5

模型關係必須在您的模型文件中聲明,而不是在您的控制器中聲明。 它應該是:

class User < ActiveRecord::Base 
    has_many :campaigns 


class Campaign< ActiveRecord::Base 

    belongs_to :user 
    has_many :users 
    accept_nested_attributes_for :users 
1

方法#has_many#belongs_to的ActiveRecord的模型定義,不ActionPack的控制器。

您需要創建模型(使用遷移創建表和列):用戶和Camaign並定義關係,並在控制器中獲取模型並在視圖中顯示它們,或使用用戶參數更新模型。

+0

好的謝謝,我很新的軌道:) – user1611830