创建方法或更新速度更快吗?

时间:2015-05-18 16:13:50

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我使用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,那么我应该使用代码更正/可读的那个。

1 个答案:

答案 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