我正在通过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
我的create函数中的代码可以自动从会话数据中设置一些字段:
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)
...
什么都不做。
有人可以解释我错过了什么吗?
非常感谢!
致以最诚挚的问候,
佛瑞德
答案 0 :(得分:1)
您需要先设置@parameter。像,
@parameter= Parameter.find(params[:id])
一旦检索到对象,就可以更新它的属性。