我在轨道上的红宝石有问题。当用户访问/ homepage /时,我想将当前用户的商店ID设为0,并且当用户访问/ homepage /时,我想让用户的商店ID成为url中的输入id:id /.
我的代码:
routes.rb:
match "/homepage" => "users#access", :as => "store"
match "/homepage/:id" => "users#homepage", :as => "store"
def access
@user = current_user
@user.update_attributes(:store => "0")
@user.save
end
def homepagestore
@user = current_user
@user.update_attribute(:id, user.store = :id)
@user.save
end
答案 0 :(得分:2)
update_attribute更新数据库中的记录。但它会跳过验证检查。 update_attributes还会更新(保存)数据库中的记录。它不会跳过验证。
所以:
params[:id]
作为Sergio说update_attributes
,因为它不会跳过验证检查save
或update_attribute
update_attributes
方法
醇>
我的建议:
def access
@user = current_user
@user.update_attributes(:store => "0")
end
def homepagestore
@user = current_user
@user.update_attributes(:store => params[:id])
end
已添加 update_attributes使用质量指配保护系统。因此,您需要在User模型的attr_accessible调用中使用:store字段以允许更改它。或者覆盖保护,请参阅update_attributes文档。询问您是否有更多问题。