【发布时间】:2015-07-30 05:59:43
【问题描述】:
我正在使用 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])
我很好奇哪个更快。我知道如果它可以节省 2 毫秒,那么我应该使用代码更正确/可读的那个。
【问题讨论】:
-
没关系。我敢打赌他们会发出相同的 SQL 命令
-
update_attributes 和 save 可能会产生相同的 sql,但如果 update_attributes 在进行 sql 调用之前进行大量检查会怎样。或其他事情。
-
页面有多慢?您可以从控制台发布显示速度的日志吗?
-
我正在使用迷你分析器,有时该部分可能需要 230 毫秒
-
update_attribute 和 save 是一样的:)。但更好的是只使用创建!方法?
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord