Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:循环中迭代的质量分配?_Ruby On Rails_Ruby_Ruby On Rails 3_Mass Assignment - Fatal编程技术网

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"}
}