更新方法不更新rails 4中的记录

Posted

技术标签:

【中文标题】更新方法不更新rails 4中的记录【英文标题】:Update method not updating record in rails 4 【发布时间】:2014-04-23 09:22:02 【问题描述】:

我已经创建了一个脚手架控制器,我可以在其中删除记录、更新记录和创建新记录。所有方法都可以正常工作,但更新方法不起作用。当我更新任何记录然后提交它时,它只会告诉我记录更新成功但是当我检查我的数据库时没有任何变化。下面是我在控制器中的更新方法。请告诉我我做错了什么。

    def update
    respond_to do |format|
      if @member = Member.find(params[:id])
        format.html  redirect_to @member, notice: 'Member was successfully updated.' 
        format.js  head :no_content 
      else
        format.html  render action: 'edit' 
        format.json  render json: @member.errors, status: :unprocessable_entity 
      end
    end
  end

【问题讨论】:

【参考方案1】:

这是因为你没有告诉它更新。你应该有:

@member = Member.find(params[:id])
respond_to do |format|
  if @member.update(member_params) # of course, you should have `member_params` method defined properly
  # the rest of your code

【讨论】:

还记得允许您希望更新的每个模型属性。 当然,这应该在member_params方法中。 尝试使用update 代替update_attributes,因为update_attributes 在rails 4 中已被弃用 @RSB 你是什么意思? update_attributes 的使用甚至不会显示弃用警告。

以上是关于更新方法不更新rails 4中的记录的主要内容,如果未能解决你的问题,请参考以下文章

由于多列上的唯一索引,无法更新 Rails 中的父记录和嵌套记录

为啥 Rails 在通过关联创建新记录时不更新其关联缓存?

Rails 5 调度程序每天更新一次数据库

不适用于经过审核的 4.7 gem 更新模型

Rails:创建/更新记录时出现 EOF 错误

Rails javascript部分没有更新记录