Ala*_*ano 3 ruby-on-rails ruby-on-rails-4
Rails 4处理强参数似乎很有趣:
def UsersController < ActionController::Base
def update
@user = current_user
if @user.update_attributes(user_profile_parameters)
redirect_to home_path, notice: "Your profile has been successfully updated."
else
render action: "edit"
end
end
private
def user_profile_parameters
params.require(:user).permit(:name, :password, :password_confirmation, :email)
end
end
Run Code Online (Sandbox Code Playgroud)
我想知道,在Rails 3中是不是可能?是的,或许只有1行,而不是只有1行.但是,那里没有什么新东西,它只是一个手动创建的允许参数列表,事实上,它只是一个哈希,不是吗?或者它有更深层次的目的吗?
Sah*_*har 12
我想它在将rails 4作为单独的gem发布之前存在方式(之前的方式) https://github.com/rails/strong_parameters
rails 4默认情况下,如果你想将它与rails 3一起使用,只需在你的gemfile中获取gem即可开始:).
在gem的github链接上,他们也写了关于如何使用它的精彩文档,所以我想你应该没有任何问题使用它.
当然,它没有什么新东西,你可以通过编写自己的过滤器来手动进行过滤,如果哈希中的深层嵌套哈希和数组被动态创建(不固定),事情可能会变得有点棘手
""是的,而不是只有1行,它将需要3行"",这就是大多数宝石所做的,我们使用它们而不是重新发明轮子,只关注我们的业务逻辑.
来自官方博客
我们正在探索一种处理Rails中的质量分配保护的新方法.或者实际上,它并不是一种真正的新方式,更多的是在你忘记的时候将一些醋混合在一起来提取既定的做法.
这种新方法是切片模式的提取,我们正在调用它的插件strong_parameters(已经作为gem使用).基本思想是将质量分配保护移出模型并进入其所属的控制器.
控制器的重点是控制用户和应用程序之间的流程,包括身份验证,授权以及作为访问控制的一部分.我们永远不应该在模型中加入质量分配保护,许多人很久以前就停止了切片模式或其中的变化.现在是时候提取这种模式并将其带给人们.
要在Rails 3中使用它,您可以使用强参数gem并按照其中的说明进行操作.
| 归档时间: |
|
| 查看次数: |
10773 次 |
| 最近记录: |