Ruby on rails RubyonRails:循环中迭代的质量分配?
我发现质量分配错误Ruby on rails RubyonRails:循环中迭代的质量分配?,ruby-on-rails,ruby,ruby-on-rails-3,mass-assignment,Ruby On Rails,Ruby,Ruby On Rails 3,Mass Assignment,我发现质量分配错误 Can't mass-assign protected attributes: 1, 2, 3, 4, 5, 6, 7 这些数字表示此循环中的迭代: <% (1..7).each do |i| %> <%= select_tag "hour[#{i}][day]", options_for_select(days_hours) %> <% end %> 我正在尝试创建如下数组: "hour"=>{ "1"=>{"day
Can't mass-assign protected attributes: 1, 2, 3, 4, 5, 6, 7
这些数字表示此循环中的迭代:
<% (1..7).each do |i| %>
<%= select_tag "hour[#{i}][day]", options_for_select(days_hours) %>
<% end %>
我正在尝试创建如下数组:
"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
如何修复迭代质量分配?还是我做错了
谢谢 您的小时属性是
"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。根据哈希,活动记录假定“1”、“2”和“3”是模型的列名或属性,并且由于您没有为访问列指定attr_accessible选项,因此引发了批量分配错误。否则,您需要创建如下哈希:
"hour"=>{
"day"=>"Sunday",
"open_time"=>"6",
"close_time"=>"6"}
}
希望有帮助:请解释您希望应用程序做什么。很难从代码中分辨出来。什么课?select_标记的用户设置是什么?我正在尝试创建这样一个数组:这是一个散列,这可能是您的问题的一部分,该数组将如下所示:小时=[{day=>Sunday,open_time=>6,close_time=>6},{day=>Sunday,open_time=>6,close_time=>6}@。你觉得你能帮我在不需要数字的地方找到它吗?我试着删除{I},但是有一个小时[day]这样的时间,我收到一个内部服务器错误消息:预期数组得到param day的字符串,`@andrewliu:请更新您的问题,详细说明要求。可能是您可以提供的全部视图内容,以及您希望如何显示select标记、其值以及您希望如何将其保存在数据库中,值是什么:open_time、:close_time等。然后您只需将day int转换为STRING就可以了。我想知道你是否能帮我扩展我原来的问题。如何使我的数组变成这样?如果我从括号中删除{I}并将其设置为hour[day][],那么所有的值都将进入一个数组,它不会像上面注释中提到的@同位素那样拆分。像这样的时间=[{day=>[星期天,星期一,星期二]…等等…我提出了一个新问题:
"hour"=>{
"day"=>"Sunday",
"open_time"=>"6",
"close_time"=>"6"}
}