Ruby on rails Rails 4.2干燥控制器

Ruby on rails Rails 4.2干燥控制器,ruby-on-rails,model-view-controller,architecture,Ruby On Rails,Model View Controller,Architecture,我有一个通过RESTAPI和ActiveAdmin访问的用户模型。因为有很多重复的代码(几乎全部),所以干掉这些代码可能是个好主意。处理这个问题有很多话题,但我没有找到合适的方法。我把我的一些想法放在下面 每个控制器中的UserController实例 再次创建重复的代码,并删除函数 #AA controller do def create @userController = UserController.new @userController.create(params)

我有一个通过RESTAPI和ActiveAdmin访问的用户模型。因为有很多重复的代码(几乎全部),所以干掉这些代码可能是个好主意。处理这个问题有很多话题,但我没有找到合适的方法。我把我的一些想法放在下面

每个控制器中的UserController实例 再次创建重复的代码,并删除函数

 #AA
 controller do 
  def create
   @userController = UserController.new
   @userController.create(params)
  end 
 end 


 #REST API
 #Create instance through callback
  def create
   @userController.create(params)
  end 
遗产 我希望有一个基本的CRUD控制器通过这样的继承位于我的模型之上

Class BaseUserController < ApplicationController
Class Api::UserController < BaseUserController

也许您应该从以下问题开始:“如果fak显然是域业务逻辑的一部分,那么为什么fak是‘控制者’中的用户身份验证”。这里有一件事可以帮助您:停止尝试在MVC架构模式中安装Rails。这和它无关,有趣的问题。考虑到只有一行代码,您的示例没有明确说明复制了哪些代码。有没有一个例子,你可以给我们,你有一个很好的重复代码块?嘿@Jonathanalard,我包括一个例子块。希望这使它更清晰,就像你需要在模型中尽可能多地执行操作一样,并尝试将你的控制器操作变成两行。(提示:编写希望在控制器中使用的代码,然后在模型中实现它)
 controller do 
  def create
       @customer =Customer.find_by_phone(params[:sms_message][:phone])
 SmsService.sendSMS(@customer[:phone],Cryptoalgorithm.sms(@customer[:id],  @customer[:recharge_token],params[:sms_message][:text].to_i)
       @sms = SmsMessage.create(:customer_id => @customer[:id], :text => params[:sms_message][:text], :phone =>     params[:sms_message][:phone])
       @customer.increment!(:recharge_token)
       redirect_to admin_sms_message_path(@sms[:id])
       end
   end