2015-02-09 67 views
2

我正在乾燥我的Rails 4應用程序。我注意到我輸入了相同的代碼,並且可能會更好地將其置於關注的位置。我只是不確定如何做到這一點,因爲我懷疑它可能需要一些元碼。Rails 4使用關注乾燥控制器CRUD

我想放在一個控制器擔憂這種「創造」的方法稱爲CrudGenerator(EX):

def create 
    if @contact_us.validate(params[:contact_us]) 
     @contact_us.save 
     flash[:success] = t :create_success_flash, class_object: "Contact Us" 
     respond_with(@contact_us, :location => new_contact_path) 
    else 
     render :new 
    end 
end 

現在這東東,如果搬到一個問題,即「CONTACT_US」接受2個PARAMS和「new_contact_path」,因爲每次包含這些問題時,這些參數都是唯一的。這些代碼的唯一部分將會改變。

我試圖使用define_method生成下面的代碼,但我不是100%確定。

有關如何在關注中生成下面的代碼並使其成爲我的ContactUsController的一部分的任何建議?

感謝

回答

0

你可以在這樣的關注移動代碼:

def create 
    resource_class.new(permitted_resource_params) 

    if resource.save 
    redirect_to some_path 
    else 
    render :new 
    end 
end 

,然後再向你要這個功能添加到控制器的這種擔憂。要加載資源,你可以在before_action調用並使用params [:controller_name] .capitalize.constantize加載資源...我希望你得到點