活动模型禁止属性错误

2023-12-13

有人能够帮助我理解这个错误吗?我正在尝试按照构建网络应用程序教程在 Rails 中创建联系表单。我按照以下步骤生成了消息支架。然后我修改了我的路线。接下来它说将其放入消息控制器显示操作中。

if @message.save
  flash[:notice] = 'Thanks for Your Message'
  format.html { redirect_to root_path }

我已经这样做了,但收到以下错误 MessagesController#create 中的 ActiveModel::ForbiddenAttributesError ActiveModel::ForbiddenAttributesError

这是我的消息控制器文件

class MessagesController < InheritedResources::Base 
  def show
     if @message.save
      flash[:notice] = 'Thanks for Your Message'
      format.html { redirect_to root_path }
     end
  end
end

我的路线文件如下

# devise_for :users

资源:产品做 资源:订单,仅:[:新,:创建] #告诉rails需要产品ID号 结尾

  # get 'pages/payment'

  get 'home/about'

  get 'messages/new'

  get 'seller' => "products#seller"

  get 'sales' => "orders#sales"

  get 'static_pages/productlanding'

  get "content/veg"

  get "content/fruit"

  get "content/mix"

  get 'subscriptions/new'

  root 'static_pages#home'

你为什么saving in the show action?

--

Params

The ForbiddenAttributes错误源于strong_paramsRails 的功能。

保存数据时,您应该通过以下方式将参数传递给您的模型:strong_params方法。这通常通过以下设置来实现:

#app/controllers/messages_controller.rb
class MessagesController < ApplicationController
   def show
      @message = Message.find(params[:id])
   end

   def new
      @message = Message.new
   end

   def create
      @message = Message.new(message_params)
      @message.save
   end

   private

   def message_params
      params.require(:message).permit(:your, :message, :params)
   end
end

这就是你的controller确实应该建造。我相信您的错误是由于您缺少传递给模型中的属性的参数造成的(因此您调用@save导致尝试用非数据填充模型)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

活动模型禁止属性错误 的相关文章

随机推荐

  • DataGridView 不允许用户删除行

    我有一个 DataGridView 如另一个问题 and AllowUserToDeleteRows被设定为true The docs比如说IBindingList AllowRemove还应该设置为true 然而List好像没有那个接口
  • 在 Weld/Seam3 应用程序上启动 POJO

    我试图在我的 Weld Seam3 应用程序中启动 POJO 但运气不佳 我尝试过以下方法 但没有一个起作用 Singleton public class StartupJobs Inject private Logger log publ
  • 扩展方法和 Razor 页面

    我在 app code 中定义了一个扩展方法 如下所示 public static class Extensions public static string Hi this object obj return hi 在剃刀页面 任何东西都
  • jQuery 隐藏元素,同时保留其在页面布局中的空间

    jQuery 中有没有一种方法可以隐藏元素 但在隐藏时不更改 DOM 我隐藏了某个元素 但是当它被隐藏时 它下面的元素会向上移动 我不希望这种事发生 我希望空间保持不变 但元素可以随意显示 隐藏 我可以这样做吗 代替hide use css
  • 匹配整个文档中的第一个元素? [复制]

    这个问题在这里已经有答案了 我想匹配整个文档中的第一个 H1 元素 然而 现在我面临着一个问题 我正在使用以下 CSS 选择器 h1 first child 但是 它与页面上的多个 H1 标签相匹配 我怎样才能让它只匹配第一个 没有这样的选
  • 如何在插入 RichEditBox 的图像中显示调整大小的装饰器?

    我正在尝试将调整大小的装饰器显示到插入到 UWP 应用程序的 RichEditBox 中的图像 到目前为止 我可以使用以下代码插入图像 private async void InsertImage var picker new FileOp
  • 从 Android 中以编程方式创建的父视图中查找子视图

    对于 Android 应用程序 我使用 GridView 并扩展 BaseAdapter 来组织其内容 对于我在扩展 BaseAdapter 类中重写的函数 getView 我创建了一个 LinearLayout 并在其中附加了一个 Ima
  • Android 模拟器和嵌套虚拟化

    我有个问题 我使用 hyper v 虚拟机来隔离开发过程 我在虚拟机上使用Windows 10 但我无法在我的虚拟机上安装虚拟机管理程序 如何在没有 hyper v 的情况下调试 xamarin forms 应用程序 Thanks 快速回答
  • 取消转义 mvc 应用程序返回的转义不可编码字符串的简单方法

    我已经检查了其他类似的问题 他们要么建议使用 WebUtility HtmlDecode 要么逐个字符替换编码部分 或者假设一些已知的正则表达式模式等 他们不回答这个特定的查询 我有一个 C 控制台应用程序 它将一些数据发送到 MVC 应用
  • 如何从 lldb 调试器类型切换到 gdb 调试器类型?

    我已经找了很长一段时间试图找出如何从 lldb 切换到 gdb 但找不到任何关于如何在 Xcode 6 1 中在两者之间切换的信息 我正在尝试调试我的应用程序 如果我使用 gdb 而不是 lldb 我也许能够弄清楚它 但我不知道它是否会对我
  • Material UI - 将图标作为道具传递

    我正在尝试通过 prop 将material ui 图标插入到我的组件中 请让我知道我做错了什么 但是 我不确定如何在 JSX 中传递图标 这是我的无效尝试 这个片段是我尝试将图标作为道具传递给类别组件
  • 元素在拖动后变得随机不可调整大小

    选择并拖动多个元素后 其中一些元素不再可调整大小 调整大小图标从右上角消失 可调整大小的图标保留在旧位置 并且不会移动已移动的元素 要重现 请运行下面的代码 使用套索选择所有元素并拖动选定的元素 之后 调整大小图标将从随机元素中消失 并且这
  • java Playframework GlobalSettings 弃用 onStart

    我遇到了 Playframwork 已弃用的烦人问题GlobalSettings问题 我想把我的 conde 移到里面onStart按照建议的方式 但实际上我无法完成此操作 文档没有任何意义 而且我不知道如何解决这个问题 我花了几天又几天的
  • 如何获取未读 Gmail 邮件的数量(在 Android 上)

    请注意 有一种新方法可以做到这一点 我一直在尝试获取未读 Gmail 邮件的数量 但没有成功 我读了Gmail java and gmail4j从这个问题中取出的两个链接 Android 如何找出用户有多少未读电子邮件 但在阅读了所有这些内
  • 用于精细监控编辑器更改的 Eclipse 插件

    因此 我希望为 Eclipse 4 2 开发一个插件 用于监视用户对其文件所做的编辑 这是我的第一个 Eclipse 插件 为了做好准备 我浏览了 Eclipse 插件开发备忘单 HelloWorld 并花了很多时间在 help eclip
  • FileSystemWatcher 触发后 - 线程池还是专用线程?

    我即将实现原型 FileSystemWatcher 解决方案 我有一个目录来监视文件创建 以及吸收创建的文件并将其插入数据库的任务 粗略地说 这将涉及读取和处理 6 或 7 80 个字符的文本文件 这些文本文件以 150 毫秒的速率出现 每
  • ORM 和 ORDBMS 之间有什么区别?

    他们看起来和我很相似 我不明白其中的区别也许是 ORDBMS 的编程示例 ORM 只是编程语言中的对象与关系数据库中的关系之间的转换层 这是notRDBMS 这里没有什么可以管理数据库 只是一个转换 映射层 阅读tag info of or
  • python sqlalchemy 在元组数据结构中插入多行

    我一直在研究如何将包含 7 个元素 列 的约 500 个元组 行 的列表插入到数据库中 我阅读了 stackoverflow 以及其他论坛上的各种帖子 我发现了以下内容 它建议使用 executemany 方法 但我不太清楚如何使用 我是否
  • python setup.py build ctypes.CDLL:无法打开共享对象文件:没有这样的文件或目录

    我已经实现了一个名为 api c 的 ctypes 包装器 并且具有以下结构 lib api c foo py setup py 手动编译api c并调用ctypes CDLL path lib api so inside foo py工作
  • 活动模型禁止属性错误

    有人能够帮助我理解这个错误吗 我正在尝试按照构建网络应用程序教程在 Rails 中创建联系表单 我按照以下步骤生成了消息支架 然后我修改了我的路线 接下来它说将其放入消息控制器显示操作中 if message save flash noti