我在使用params.require().permit()
方法时遇到问题,因为它没有考虑我设置的属性之一,即属性:on
我拥有的是:
def event_recurrence_params
params.require(:event_recurrence).permit(:room_id, [...], :on, :every)
end
然后,当我致电event_recurrence_params
时,答案是
>> event_recurrence_params
=> {"room_id"=>"1", [...], "every"=>"week"}
即使params[:event_recurrence]
的值为
>> params[:event_recurrence]
=> {"room_id"=>"1", [...], "on"=>["wednesday"], "every"=>"week"}
如您所见,:on
中未考虑event_recurrence_params
属性,即使该属性已被允许且params[:event_recurrence]
包含该属性。
有什么想法吗?我尝试了很多东西,但没有一个有效。 谢谢!
答案 0 :(得分:5)
允许的标量类型是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: [])