【发布时间】:2014-03-09 05:04:11
【问题描述】:
我正在使用 Rails 4.0,我想消除一些重复的行,但我不知道在 Rails 中这样做的含义。据我了解,每个请求中都会创建一个控制器实例1。
class ResetController < ApplicationController
def reset_password
user = User.find_by_email(params[:email])
if user
...
end
def reset_user_token
user = User.find_by_email(params[:email])
if user
...
end
end
如果我不使用 Rails,我的想法是使用 memoization 提取私有方法并删除重复的行:
private
def user
@user ||= User.find_by_email(params[:email])
end
在 Rails 控制器中这样做是个好主意吗?你如何改进这段代码?我在应用程序的很多部分都有类似的问题。
相关:
- When to use memoization in Ruby on Rails
- Rails Best Practices: Use memoization
【问题讨论】:
-
在这种情况下完全没问题
标签: ruby-on-rails memoization code-duplication