- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用以下逻辑重构 Controller 。:
def recover_password
if params[:login].present?
if User.exists?(id: params[:login])
render plain: "Recover by id" status: :ok
elsif Utils.is_email?(params[:login])
render plain: "Recover by email" status: :ok
else
render plain: "Email not found" status: :unauthorized
end
else
render plain: "Login not found" status: :unauthorized
end
end
我尝试将业务逻辑发送到 User
模型,但我不知道这是否是一个好的选择:
def recover_password
result = User.recover_password(params)
render plain: result status: :status
end
重构此代码的最佳替代方案是什么?发送给模型并返回消息?但是如何返回消息和状态码呢?
P.S:我无法在 Controller 中创建另一个方法/操作来分离恢复密码的方法。
最佳答案
不确定将此逻辑添加到用户模型是否是个好主意。您可以将其移至 Controller 私有(private)方法。
def recover_password
result = check_params(params[:login])
render plain: result[:message], status: result[:status]
end
private
def check_params(login)
return { message: "Login not found", status: :unauthorized } if login.blank?
return { message: "Recover by id", status: :ok } if User.exists?(id: login)
return { message: "Recover by email", status: :ok} if Utils.is_email?(login)
{ message: "Email not found", status: :unauthorized }
end
关于ruby-on-rails - Rails 中的胖模型瘦 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033792/
我很好奇针对包含 armv7 和 i386 代码(用于模拟器)的通用(胖)库构建是否会增加应用程序分发包的大小,或者设备的构建过程是否会删除 i386 内容并进行调试信息? 最佳答案 如果我没记错的话
我正在尝试将我的对象打包为 64 字节(自行开发的属性),并且我需要保存 getter 和 setter 成员函数。 我真的很喜欢 std::function 但太大了: sizeof(std::fu
如果传递库不是 packaged使用 JAR 任务: By default, jar task in gradle builds an executable jar file from your pr
在Sublime Text编辑器中无法有效搜索问题。当前正在使用该编辑器的最新版本。 在用这些大块命中Ctrl + Shift + FI后,我想导航到下一个文件(在图像1/138中),但我不知道如何操
我正在重新设计旧应用程序——更确切地说是设计新应用程序,我想利用旧应用程序的某些部分在未来变得更有用和可扩展。 旧应用程序是一个厚桌面应用程序,用于处理在文件服务器上共享的数据。 (它使用 DBF 数
我无法为使用 Xcode 10.2+ 构建的通用(胖)框架的模拟器(设备编译成功)编译应用程序。应用程序使用来自 Objective-C 代码的框架。当从为设备构建切换到为模拟器构建时,Xcode 停
我有一个 fat jar 子,我试图在其中获取 Kotlin 的实例 ScriptEngine . 出于调试目的,我遍历可用的脚本引擎工厂并获取引擎。 val scriptEngineManager
我是一名优秀的程序员,十分优秀!