2016-04-17 17 views
0

を作成し、私は次のモデルレール4設定した値は、前

members (id, name, company_id..) 
companies (id, name, ...) 
campaigns (id, company_id, ...) 

私は

def create 
    @campaign = Campaign.new(campaign_params) 
    if @campaign.save 
     redirect_to campaigns_path(@campaign) 
    else 
     render :new 
    end 
    end 

次ているキャンペーンを作成するとき、私はからのヘルパーメソッドを持っているを持っていますAppControllercurrent_companyといい、そのIDを@campagin.company_id

に設定してください。これはデフォルトのログインユーザーを設定する最も良い方法ですすべてのキャンペーンにを作成しましたか?

私はcurrent_companyを通過し、このようなクエリを作成できますか?

@campaign = current_company.campaign.new(campaign_params) 
あなたがあなたの目標のためのモデルで before_createコールバックを使用することができます

答えて

1

:それは何かをしても意味がない

def create 
    campaign_params[:company_id] ||= default_company_id 
    @campaign = Campaign.new(campaign_params) 
    if @campaign.save 
    redirect_to campaigns_path(@campaign) 
    else 
    render :new 
    end 
end 
+0

:あなたが直接あなたのコントローラで同じことを行うことができます

before_create :set_default private def set_default self.campaign_id ||= your_default_id end 

かこのように@campaign = current_company.campaign.new(campaign_params)オブジェクトを作成する際には、アプリケーションコントローラからのメソッドであり、モデルでは使用できません。 –

+0

@HarshaMV、updated – Ilya

関連する問題