Ruby on Rails 3 选择帮助程序问题

发布于 2024-09-25 08:14:23 字数 155 浏览 1 评论 0原文

当我创建新项目时,我的表单中有这行代码。尽管当我编辑该项目时,默认选择不是所选的项目。需要设置初始值吗?

<%= f.select :category, options_for_select(Item::CATEGORIES) %>

Have have this line of code in my form when I create a new item. Though when I edit the item, the default selection isn't the one that is selected. Do I need to set the initial value?

<%= f.select :category, options_for_select(Item::CATEGORIES) %>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黯然#的苍凉 2024-10-02 08:14:23

options_for_select 接受第二个参数,用于标识所选值。

try

<%= f.collection_select :category_id, Item::CATEGORIES, :downcase, :titleize %>

它假设您的 Item::CATEGORIES 给出了一个类别字符串数组。

对于 Item::CATEGORIES 中的每个类别,category.downcase 将用作选项的值,而 category.titleize 将用作选项的文本。

IE。

<option value="<%= cate.downcase %>"><%= cate.titleize %></option>

======

或者你可以:

<%= f.select :category, options_for_select(Item::CATEGORIES, @cur_obj.category.id) %>

options_for_select accepts second param which identifies the selected value.

try

<%= f.collection_select :category_id, Item::CATEGORIES, :downcase, :titleize %>

It assumes your Item::CATEGORIES gives a array of strings of categories.

for each category in Item::CATEGORIES, category.downcase will be used as the option's value, while category.titleize will be used as the option's text.

ie.

<option value="<%= cate.downcase %>"><%= cate.titleize %></option>

======

or you could:

<%= f.select :category, options_for_select(Item::CATEGORIES, @cur_obj.category.id) %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文