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/