在params hash中包装一些东西

时间:2014-12-08 14:59:57

标签: ruby-on-rails ruby-on-rails-3

我想以这种方式用我的轨道嵌入params,(一个已经开始的项目,这看起来最简单的方法,抱歉,如果它不直接)。

= form_for @building do |f|
  ...
  = fields_for :building_floors do
    - @building.floors.each_with_index do |building_floor, index|
      - fields_name = "building_floor_" + index.to_s
      = f.fields_for fields_name, building_floor do |bf|
        ...

所以我想得到一个类似于:#/ p>的参数

... "building_floors"=>{ "building_floor_1"=>{...}, "building_floor_2"=>{...}  }...

问题是:如何用rails包装params hash中的内容。

1 个答案:

答案 0 :(得分:0)

您可以使用嵌套的数据。

普通的HTML示例:

<form action="....">
  <input type="text" value="" name="floor[1]" />
  <input type="text" value="" name="floor[2]" />
</form>

所以在你的情况下会是这样的:

= form_for @building do |f|
  ...
  = fields_for :building_floors do
    - @building.floors.each_with_index do |building_floor, index|
      - field_name = "building_floor[#{index}]"
      = f.fields_for field_name, building_floor do |bf|
        ...