问题标签 [mass-assignment]

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 投票
2 回答
1088 浏览

ruby-on-rails - Delayed_job (2.1.4) 错误:作业加载失败:需要 IO 实例。处理程序无

我创建了一个简单的成就系统,并想引入 delay_job (2.1.4) 来处理处理。但是,delayed_jobs 表中的处理程序列始终为 nil,这会导致 last_error 文本:Job failed to load: instance of IO needed. Handler nil

这是我的设置:

成就观察员

奖杯工作

delay_jobs 表中的条目被创建。但是,处理程序始终为 NULL。我已经尝试过各种事情(之前通过完整的对象,现在去了 id + classname 如此处所述:Weird exception with delayed_job;在观察者中尝试了 xxxTrophy.delay.progress(...) 等) - 全部没有运气。

我也有

在我的 boot.rb 中。

值得一提的一点是:虽然 last_error 文本由 delay_job 填充,但是尝试和 failed_at 列仍然为 NULL。

我错过了什么?

更新

我验证了序列化按预期工作:

0 投票
1 回答
2036 浏览

ruby-on-rails - Rails 关联不能批量分配外键

也许我做错了,但这是我的问题:

这将构建一个新的餐厅对象,其中 user_id 设置为current_user.id. 这仅在您attr_accessible :user_id在餐厅模型中设置时有效。如果没有,你会得到一个

我想要的是有user_id定义的 via,.build但同时我不想要,attr_accessible :user_id因为这样就可能有人将此记录的 user_id 设置为其他用户的 id,这会很糟糕!

我认为外键已被排除在此批量分配安全性之外,并且如果您通过关联.build.create方法创建新对象,则会强制执行。

有什么建议么?我不想回去

因为那样有悖于目的.build

0 投票
1 回答
89 浏览

ruby-on-rails - 如果模型没有关联的控制器,我是否需要防止批量分配?

对于经验丰富的 Rails 开发人员来说,这听起来像是一个愚蠢的问题。如果模型没有关联的控制器,我是否需要防止批量分配?我猜我不需要,但如果有人能证实这一点,那就太好了。

另外,如果有一个控制器但没有创建/更新/销毁操作的路由的场景呢?

谢谢,诺埃尔

0 投票
4 回答
12328 浏览

ruby-on-rails - Ruby 中有与 slice 函数相反的函数吗?

在这篇文章中,切片函数用于仅获取参数的必要元素。我应该使用什么函数来排除参数元素(例如 user_id)?

谢谢你。

0 投票
2 回答
141 浏览

ruby-on-rails - 替换参数哈希中的敏感元素以避免 Rails 中的大量分配

我想为自己有一个更系统的解决方案,以避免批量分配。

一个典型的情况是从 params 中删除 id 或 user_id(通过表单自动提交)并在内部用 current_user.id 替换它(在 MyController#create 中)。

我能想到的一个解决方案是从 params 哈希创建对象,然后 update_attributes (父对象和子对象)用内部值替换敏感属性:

有没有更短/更干的方式来表达这个?

如果偏好、配置文件等是用户的子对象(通过构建方法创建),我如何编写一个方法来为用户查找他们的外键并自动将它们替换为我传递给父级的值?

谢谢你。

0 投票
0 回答
187 浏览

ruby-on-rails - 运行 rake 任务时未显示批量分配警告

我有一个种子文件,其中包含如下几行:

现在,当我执行 rake db:seed 时,虽然命令完成时没有提及任何警告,但在数据库中没有创建记录。

只有在 Rails 控制台中执行上述行时,它才会抱怨“警告:无法批量分配受保护的属性:名称”消息。

知道如何让 rake db:seed 显示这种类型的警告吗?

顺便说一句,只需将名称添加到 attr_accessible 列表即可解决问题:

0 投票
3 回答
5938 浏览

ruby-on-rails - 使用 Rails 3.1 :as => :admin 更新受 attr_accessible 保护的属性

在阅读了 Rails 3.1 API 中的 attr_accessible之后,我看到那里有一个 as:admin选项。我想知道两件事。

  1. 如果用户有管理员标志,我的控制器如何告诉我的模型用户是管理员。

  2. 如果用户是所有者,我可以:as => owner在我的模型中指定,并且我的控制器如何再次通知我的模型他们是项目的所有者。

0 投票
1 回答
888 浏览

ruby-on-rails-3 - 无法批量分配受保护的属性:地址

当我尝试分配嵌套属性时,我在日志中得到以下信息。我已经扫描并尝试了所有我能找到的答案,但没有任何效果。

users, "authority_id"=>"1", "provider_id"=>"11789", "details"=>"", "directions"=>""}} 用户负载 (0.4ms) SELECT .* FROM usersWHERE users. id= 4 限制 1

警告:无法批量分配受保护的属性:地址

我有 CareHome < 服务的 STI。地址是一种多态关系。

在服务中,我有:

在 CareHomeController#new/create 我有

如果我将 :address 添加到 attr_accessible 我得到错误:

地址(#2560574700) 预期,得到 ActiveSupport::HashWithIndiffergentAccess(#2157282280)

我的 Rails 版本是 3.1.1。

我想这一定是一些微妙的事情,但我已经没有想法可以尝试了。任何帮助表示赞赏!

0 投票
1 回答
704 浏览

ruby-on-rails - 更新嵌套属性:警告:无法批量分配受保护的属性:错误

我花了很多时间在这上面,拉着它掉了一半的头发。帮助。

user

right

看法:

但是当我更新时它一直说:

我可以pdg通过添加:pgd_ids到用户attr_accessible而不是link_id. 插入link_id为。NULL

0 投票
1 回答
109 浏览

ruby-on-rails - Rails 3.1 批量赋值层次结构

我正在尝试为 CRUD 某些模型设置不同的访问控制级别(我的应用程序中的 3 个级别)。应用程序中没有用户模型,因为我使用 RPAM 进行身份验证,使用会话来跟踪用户。为了设置授权级别,我创建了一个名为 user_role 的模型,将角色分配给用户名。在 DB 中,它看起来像这样:

我有一个这样定义的模型:

我怎样才能建立角色的层次结构:对于所有限制可以做的事情,管理员也可以做,但不能相反。