0

对于选择框,我使用了一个数组,我通过一个方法自己声明了它。该数组是范围从 1 到 100 的数字,它来自我在控制器中创建的方法。

数组是从控制器中的以下方法声明的:

@print = Print.find(params[:id])
@pages = (1..(@print.number_of_images_entry)).to_a

我正在尝试这样做:

<%= select ( "blackwhite", "newpages", ... ... ) %>

但我很难理解“选择”代码的 id 部分的解释:

<%= select ("selected_payment", "id", @payments.map {|u| [u.name,u.id]}) %>

编辑:

blackwhite 是另一种模式。

4

2 回答 2

0

从您提供的示例链接中可以看出,在第一个示例中使用的是用于填充选项标签的哈希。第二个示例采用对象名称selected_payment,然后采用作为该实例变量属性的方法。换句话说。用于的实例变量selected_payment是 id。实例变量被转换为数组数组,使用.map它是用于返回具有一组结果的新数组的可枚举。所以在提供的例子中

<%= select ("selected_payment", "id", @payments.map {|u| [u.name,u.id]}) %>

它返回一个包含名称和对应于该名称的 ID 的付款数组。

根据我的理解,我想出了以下内容:

<% ("blackwhite", "id", @print.map {|p| [p.number, p.id]}) %>

可能不正确,但它是我从您提供的链接和您正在尝试做的事情中收集到的

于 2013-06-11T11:52:28.500 回答
0

我写了一篇关于这个主题的博客文章,因为它似乎对人们(包括我自己!)来说很难理解。

http://www.fmhcc.com.au/ruby/rails/using-collection_select-in-rails/

于 2013-06-10T03:58:07.370 回答