好像 strong_parameter 是在 controller 层去定义,我现在用 grape 做 api,存储还是用 active_record,请问怎样在这种情况下怎么用 strong_parameter,或者我的思路已经错了?
简单点用 slice 就够了,strong_parameter 依赖 rails 的组件。
#1 楼 @Rei slice 是什么呢?
奥,搜了下才发现是 activesupport 的扩展 http://apidock.com/rails/Hash/slice
#3 楼 @Rei 还是不太明白你的意思,我现在用 activerecord 保存无法成功,怎样用 slice 就成功了呢?
#4 楼 @zhelee strong_parameter 用途不是过滤非法参数嘛,slice 也能达到目的,只不过如果漏写了也不会抛出异常。
post = Post.new params[:post].slice(:title, :body) # 只接受 :title, :body 参数
#5 楼 @Rei 我再看看,谢谢
@Rei
l = League.new(full_name: 'foo', short_name: 'bar') WARNING: Can't mass-assign protected attributes for League: full_name, short_name
我的问题是这个
#5 楼 @Rei rails3 用 attr_accessible,现在不用这个了,用 strong_parameter,而这个又只能用在 controller 里,我不明白你说的 slice 是怎么解决这个问题的
#8 楼 @zhelee 关掉属性白名单。
#9 楼 @Rei 非常感谢。