0

我正在通过 Mickael Hartl 的教程学习 RoR ...

在我的 parameters_controller 中创建或更新记录(我的应用程序的参数定义)时,我需要从会话 cookie 添加数据。所以我在我的控制器中添加了这段代码:

private
def current_user
  remember_token = User.encrypt(cookies[:remember_token])
  @current_user ||= User.find_by(remember_token: remember_token)
end

我的创建函数中的这段代码可以从会话数据中自动设置一些字段:

def create
  @parameter = Parameter.new(parameter_params) #code generated by Rails
  @parameter.updated_by = current_user.name    #my additional code
  @parameter.created_by = current_user.name
  respond_to do |format|
    if @parameter.save
    ...

哪个工作正常,但它不适用于更新功能:

def update      
  @parameter.updated_by = current_user.name        #my additional code
  respond_to do |format|                           #code generated by Rails
    if @parameter.update(parameter_params)         
    ...

什么都不做。

有人可以解释一下我错过了什么吗?

非常感谢 !

此致,

弗雷德

4

1 回答 1

1

您需要先设置@parameter。就像是,

@parameter= Parameter.find(params[:id])

一旦检索到对象,就可以更新它的属性。

于 2013-10-14T23:25:03.290 回答