2015-02-09 62 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加载资源...我希望你得到点