2

如何增加“”属性?

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

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

不幸的是,每次运行newwek时,该值都保持为1。我该如何解决?

编辑

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

2 回答 2

2

你可以使用.increment方法。

current_user.userprofile.increment :week
于 2012-12-05T03:14:19.683 回答
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

编辑以测试用户配置文件的值(nil 与否)

于 2012-12-05T03:09:54.903 回答