我在使用该params.require().permit()方法时遇到问题,因为它没有考虑我设置的属性之一,即属性:on
我有的是这个:
def event_recurrence_params
params.require(:event_recurrence).permit(:room_id, [...], :on, :every)
end
Run Code Online (Sandbox Code Playgroud)
然后,当我打电话时event_recurrence_params,答案是
>> event_recurrence_params
=> {"room_id"=>"1", [...], "every"=>"week"}
Run Code Online (Sandbox Code Playgroud)
即使价值params[:event_recurrence]是
>> params[:event_recurrence]
=> {"room_id"=>"1", [...], "on"=>["wednesday"], "every"=>"week"}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,即使属性被允许并且包含它,:on也不会考虑event_recurrence_params该属性params[:event_recurrence].
有任何想法吗?我尝试了很多东西,但没有一个有效.谢谢!
从文档:
允许的标量类型是String,Symbol,NilClass,Numeric,TrueClass,FalseClass,Date,Time,DateTime,StringIO,IO,ActionDispatch :: Http :: UploadedFile和Rack :: Test :: UploadedFile.
要声明params中的值必须是允许的标量值数组,请将键映射到空数组:
所以你需要这样做:
params.require(:event_recurrence).permit(:room_id, [...], :every, on: [])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |