我使用rails 3.2.11和ruby 1.9.3。 我有一个慢页面,我知道我有很多方法来优化它。目前我专注于方法update_attributes。
这是我的代码:
def create
@user = current_user
@demo = @user.demos.new
race_ethnicity_response = []
params[:race_ethnicity_response].each do |response, value|
race_ethnicity_response << response if value != '0'
end
params[:demo][:race_ethnicity_response] = race_ethnicity_response.join(', ')[0, 254]
@demo.update_attributes(params[:demo])
end
或者我应该使用类似构建,保存或创建的东西吗?
@demo = @user.demos.build
...
@demo.save!
或者
@users.demos.create!(params[demo])
我很好奇哪个更快。我知道如果它节省2ms,那么我应该使用代码更正/可读的那个。
答案 0 :(得分:0)
在这样的小型操作中,您不会看到很多性能差异。追求可读性和可维护性。上面的代码似乎有点分散,特别是中间块。这是一个简单的方法,虽然我可能会遗漏与params [:race_ethnicity_response]循环相关的内容。
@demo = Demo.new(:params)
@demo.race_ethnicity_response = race_ethnicity_response.reject{|i| i == 0 }.join(', ')[0, 254]
current_user.demos << @demo