Ruby on Rails:循环迭代的批量分配?
我得到了质量分配错误。
Can't mass-assign protected attributes: 1, 2, 3, 4, 5, 6, 7
这些数字代表此循环中的迭代:
这是在我的模型中:
attr_accessible :day, :open_time, :close_time
我正在尝试创建一个这样的数组:
"hour"=>{ "1"=>{"day"=>"Sunday","open_time"=>"6","close_time"=>"6"}, "2"=>{"day"=>"Sunday","open_time"=>"6","close_time"=>"6"}, "3"=>{"day"=>"Sunday","open_time"=>"6","close_time"=>"6"} }
我正在尝试将新行中的每次迭代保存到数据库中
def create @hour = @hourable.hours.new(params[:hour]) end
如何修复迭代质量分配? 或者我这样做是错的?
谢谢!
从散列中,Active Record假定’1’,’2’和’3’是模型的列名OR属性,并且由于您没有为访问列指定attr_accessible
选项,因此它会抛出mass-assignment error
。 否则,您需要创建一个哈希,如下所示:
"hour"=>{ "day"=>"Sunday", "open_time"=>"6", "close_time"=>"6"} }
希望能帮助到你 :)
你的小时属性是
"hour" => { "1"=>{"day"=>"Sunday", "open_time"=>"6", "close_time"=>"6"}, "2"=>{"day"=>"Sunday", "open_time"=>"6", "close_time"=>"6"}, "3"=>{"day"=>"Sunday", "open_time"=>"6", "close_time"=>"6"} }
这意味着,您的小时表应具有属性1,2和3。