问题标签 [strong-parameters]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
649 浏览

ruby-on-rails - Select2 + Rails 4 / 强参数

背景:帖子有很多社区。在我的新帖子表单上,我有一个使用 Select2 选择社区的多选框。

在没有Select2的情况下选择社区时,我会得到这些参数,一切正常:

使用 Select2 选择社区时,我得到:

这会引发Couldn't find Community with id=0错误。我将其范围缩小到与强参数的工作方式有关。我猜 Rails 正试图找到一个 ID 为“[]”的社区?这是在我的 PostsController 中:

有任何想法吗?

0 投票
1 回答
2735 浏览

cancan - 带有 CanCan 的 Rails 4:包含 load_and_authorize_resource 后出现未知属性错误

我在 Rails 4 中工作,并且已经让 CanCan 能够很好地处理这个问题的说明,除了一个我认为可能相对常见的用例。

我有一个Comment模型,has_many :comments, through: :replies用于嵌套评论。所有这些都运行良好,直到我添加load_and_authorize_resource到我的评论控制器。问题似乎源于:parent_comment_id向我的创建操作发送可选属性的隐藏字段。

我已通过强参数允许此属性:

这样我就可以在:parent_comment_id包含 a 时创建关联:

但是一旦我添加load_and_authorize_resource,我得到一个未知的属性错误:parent_comment_id。我错过了什么?

0 投票
0 回答
221 浏览

ruby-on-rails-4 - Rails 4,strong_parameters,动态 attr_accessible:如何将父数据库信息获取到类实例中

我正在尝试attr_accessible根据其父帐户添加到用户模型。我知道用户类实例还没有访问其父级的权限,但我不知道该怎么做。任何建议都会很棒。

这就是我strong_params开始工作的方式,并且希望在用户模型中做类似的事情(或者做一些更好的事情)。

这就是现在的工作:

这就是我想要的工作:

0 投票
1 回答
527 浏览

ruby-on-rails - 用于布尔属性的 Rails 提交按钮

我想知道如何使用一个submit按钮来更改布尔属性,而不是使用单选按钮。

例如,如果我在Post#index页面上显示“已发布”和未发布的文章帖子列表,并且我想要一个名为“发布”的按钮,它将模型上的 :is_published 字段设置Post为 true。

我在 Rails 3.2.13 上使用 strong_parameters

我在想Post我会在控制器中

在我看来,Post#index我有一个form_for<%= f.submit 'Publish', name: publish_button %>

这是中的视图Post#index

简单模型如下

但我得到一个错误Required parameter missing: post

提前致谢。

更新 我添加了一个与问题相对应的模型和视图。我希望它有所帮助。

0 投票
2 回答
6618 浏览

devise - Rails 4.0 和设计 - 强参数错误

这里是新手,所以请耐心等待。

Rails 4 上带有 ruby​​ 2.0 的新应用程序,我安装了 Devise 并按照说明操作(默认 root 等)。github上的设计自述文件说它应该与rails4兼容,但是

  • db:migrate 失败,除非我在 User.rb 中注释掉 attr_accessible 行
  • 注释掉之后,我在尝试创建用户时收到“ActiveModel::ForbiddenAttributesError in Devise::RegistrationsController#create”错误。

我看到一些像这样的堆栈溢出问题,但很多答案直接跳进了一些复杂的话题。我知道我需要为批量分配指定允许的属性,但是如何?在哪里?哪些属性需要被允许,所有这些?只有那些我希望同时更改/创建的?

从错误来看,我会创建一个从 Devise::registrationsController 继承的 registrations_controller.rb 吗?我在其中指定了什么?

任何一步一步,新手友好的答案都非常感谢。我已经筋疲力尽地尝试从这里的答案和谷歌搜索的各种网站中尝试不同的代码。

0 投票
3 回答
4616 浏览

ruby-on-rails - rails 4 strong params + 动态 hstore 键

我在使用 Hstore 和动态访问器克服 Rails 4 中新的强参数要求时遇到问题

我有一个名为 Hstore 的列:content,我想用它来存储多种语言的内容,:en, :fr例如,等等。而且我不知道在模型或控制器中预先设置哪种语言。

如何在 Rails 4 中为一列覆盖强参数(或允许动态 hstore 键)?

缺乏...

这当然有效。

0 投票
2 回答
13195 浏览

ruby-on-rails-4 - Rails 4 强参数 - 处理缺失的模型参数哈希

模型:帖子和用户

Post belongs_to :user
用户 has_many :posts

简单的。

假设存在一些用户,我们访问帖子的编辑页面。

...

...

Post 的控制器利用 Rails 4 强大的参数。

假设编辑帖子表单只有单选按钮作为字段。

问题:抛出 ActionController::ParameterMissing 异常。未找到参数:发布

原因是 Post params 哈希从未创建,导致上述异常被抛出。与空文本字段不同,空单选按钮不会触发创建模型的参数散列。

如果 Post 模型要求 user_id 有效怎么办?当然有人会想再次渲染视图,原因是无法保存帖子。

问题:在遵守 Rails 约定的同时处理这种情况的优雅方法是什么?

更新:

进一步集思广益,我相信可能还有很多其他情况会产生这个问题;它不一定对应于单选按钮。

0 投票
3 回答
34392 浏览

activerecord - 如何使用带有has_many的Rails 4强参数:通过关联?

我无法通过使用 Rails 4 的强大参数来获得 has_many :through 关联。我有一个名为的模型Checkout,我需要Employee在新的结帐表单中从模型中选择一个人。结账和员工通过Employment模型关联。

尝试创建新结帐时出现此错误:

我的创建操作、结帐参数或新结帐表单似乎有问题。这是创建操作:

我的结帐参数:

我的新结帐表格:

但我无法弄清楚 Rails 4 和强大的参数发生了什么变化。在 Rails 3 中,这种类型的关联和表单使用 attr_accessible 而不是 strong_parameters 对我有用。

相关文件

错误的完整跟踪: https ://gist.github.com/leemcalilly/0cb9e2b539f9e1925a3d

模型 /checkout.rb:https://gist.github.com/leemcalilly/012d6eae6b207beb147a

控制器 /checkouts_controller.rb:https://gist.github.com/leemcalilly/a47466504b7783b31773

意见/结帐/_form.html.erb https://gist.github.com/leemcalilly/ce0b4049b23e3d431f55

模型 /employee.rb:https://gist.github.com/leemcalilly/46150bee3e6216fa29d1

控制器 /employees_controller.rb:https://gist.github.com/leemcalilly/04f3acdac0c9a678bca8

模型 /employment.rb:https://gist.github.com/leemcalilly/6adad966dd48cb9d1b39

db/schema.rb: https ://gist.github.com/leemcalilly/36be318c677bad75b211

0 投票
5 回答
68958 浏览

ruby-on-rails - 遇到在早期版本的 Rails 中使用 attr_accessible 的情况时,Rails 4 中的禁止属性错误

随着最近升级到 Rails 4,使用类似于下面的代码更新属性不起作用,我收到一个ActiveModel::ForbiddenAttributes错误:

User 在模型中有以下 attr_accessible 行:

你如何在 Rails 4 中完成同样的任务?

0 投票
1 回答
9410 浏览

ruby-on-rails-4 - 空数组时,嵌套属性的强参数返回“不允许的参数”

假设使用带有 strong_parameters 的 Rails4 的用户模型。

如果我参考指南,我应该能够做到

允许对每个 identity_attributes 进行 mass_assignment,无论其名称或编号如何。但这运行在“未经许可的参数:identity_attributes”中

但是,如果我指定 identity_attributes 它可以工作

我在 Identity 中有很多属性,我可以通过 User 对它们进行 mass_assign 而不指定所有属性。

我错过了什么吗?这是一个错误吗?

干杯