Pap*_*nho 5 ruby-on-rails ruby-on-rails-4
Rails 4:我来自rails 3.2.x我有一个问题.如何在没有控制器的情况下使用Strong参数.
我有这个型号:
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
Run Code Online (Sandbox Code Playgroud)
Track是唯一一个拥有Controller的轨道,因此它具有一些强参数.
我想知道在哪里可以放置属于"tracksegment"和"points"的参数在Rails 3.x中它直接在模型中但在rails 4中我没有控制器.
小智 8
如果您需要在控制器之外使用"强参数",这可能会有所帮助:
在控制器之外使用
虽然强参数将在应用程序控制器中强制执行允许值和必需值,但请记住,在控制器外部使用时,您需要清理用于批量分配的不可信数据.
例如,如果从第三方API调用中检索JSON数据并将未经检查的解析结果传递给Model.create,则可能会发生不需要的批量分配.您可以通过切片哈希数据,或将数据包装在ActionController :: Parameters的新实例中并将声明权限与控制器中的权限相同来缓解此风险.例如:
raw_parameters = { :email => "john@example.com", :name => "John", :admin => true }
parameters = ActionController::Parameters.new(raw_parameters)
user = User.create(parameters.permit(:name, :email))
Run Code Online (Sandbox Code Playgroud)
https://github.com/rails/strong_parameters
| 归档时间: |
|
| 查看次数: |
1857 次 |
| 最近记录: |