如何增加对象属性的值?

时间:2012-12-05 01:54:31

标签: ruby-on-rails

如何增加“”属性?

def newweek
 current_user.userprofile.week += 1
 respond_to do |format|
  format.html { redirect_to :action => "index"}
 end
end

初始值为 0 。每次运行新周时,周应增加 1

不幸的是,每次运行 newwek 时,该值仍为 1 。我该如何解决这个问题?

修改

class NewWeekToUserprofile < ActiveRecord::Migration
  def change
     add_column :userprofiles, :week, :integer, :default => 0
  end
end

2 个答案:

答案 0 :(得分:2)

您可以使用.increment方法。

current_user.userprofile.increment :week

答案 1 :(得分:1)

试试这个:

def newweek
 cu_p=current_user.userprofile
 cu_p.week=cu_p.week.nil? ? 1 : cu_p.week +1
 cu_p.save
 respond_to do |format|
  format.html { redirect_to :action => "index"}
 end
end

编辑以测试userprofile的值(nil或不是)