ruby-on-rails - rails 4 使用强参数而没有 Controller

标签 ruby-on-rails ruby-on-rails-4

rails 4:
我来自 rails 3.2.x 我有一个问题。如何在没有 Controller 的情况下使用强参数。

我有这个模型:

Track (the only one that has a Controller  )
  has_many :tracksegments, :dependent => :destroy
  has_many :points, :through => :tracksegments
Tracksegment
  belongs_to :track
  has_many :points, :dependent => :destroy
points
  belongs_to :tracksegment

Track 是唯一一个有 Controller 的,所以它有一些强参数。

我想知道我在哪里可以放置属于“tracksegment”和“points”的参数
在 Rails 3.x 中,它直接存在于模型中,但在 Rails 4 中,我没有它们的 Controller 。

最佳答案

如果您需要在 Controller 之外使用“强参数”,这可能会有所帮助:

在 Controller 之外使用

虽然强参数将在您的应用程序 Controller 中强制执行允许和必需的值,但请记住,当在 Controller 之外使用时,您需要清理用于批量分配的不可信数据。

例如,如果您从第三方 API 调用检索 JSON 数据并将未经检查的解析结果传递给 Model.create,则可能会发生不需要的批量分配。您可以通过切片散列数据或将数据包装在 ActionController::Parameters 的新实例中并像在 Controller 中一样声明权限来减轻这种风险。例如:

raw_parameters = { :email => "john@example.com", :name => "John", :admin => true }
parameters = ActionController::Parameters.new(raw_parameters)
user = User.create(parameters.permit(:name, :email))

https://github.com/rails/strong_parameters

关于ruby-on-rails - rails 4 使用强参数而没有 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488025/

相关文章:

ruby-on-rails - 调用方法,在Application controller中定义,在其他controller中

ruby-on-rails - 与Authlogic进行集成测试?

mysql - 如何添加 UNIQUE AUTO_INCREMENT FIRST id 列

ruby-on-rails - 突然找不到 Rails 安装

internationalization - Rails 4 解析不同语言的日期

ruby-on-rails-4 - 条件 before_action/before_filter 是否需要 "proc"?

ruby-on-rails - 当 webpack-dev-server 运行时,Rails 看不到 webpacker 编译的文件

javascript - jQuery 从 Restful Web 服务解析 xml?

jquery - 如何让相同的 javascript 代码响应多个 ajax 调用?

mysql - 在 Rails 中嵌套用户特定的表单