gpt4 book ai didi

ruby-on-rails - 选择_tag : Style and Modify Options Upon Condition

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:15 25 4
gpt4 key购买 nike

我有一个 form_categories 表,其中有一列名为 active,其类型为 tinyint/boolean。如果表单类别记录的事件属性为真,则它是事件的。如果为 false,则它处于非事件状态。

我有一个选择框,显示form_categories 表中的所有 记录。我想将 inactive form_category 选项设置为红色,以便向用户传达该 form_category 处于非事件状态。或者更好的是,我想在每个非事件 form_category 选项旁边加上括号:(inactive) 用红色字母表示。

这可能吗?

下面是我的选择框:

<%= form_tag some_path, method: :get do %>
<%= label_tag "Choose Category" %><br>
<%= select_tag :category_id, options_from_collection_for_select(FormCategory.all, :id, :name), include_blank: true %>
<% end %>

最佳答案

您可以使用 options_for_select并自己提供选项散列:

options_for_select(form_categories_options, 1) # Where 1 is the current selected option; you would use some value passed from the controller for it

对于form_categories_options,你可以使用一个助手,比如:

def form_categories_options
FormCategory.all.map do |form_category|
if form_category.inactive
["#{form_category.name} (inactive)", form_category.id]
else
[form_category.name, form_category.id]
end
end
end

如果你真的想用options_from_collection_for_select ,您可以调整第三个参数,即 text_method:您可以在 FormCategory 模型中定义一个 formatted_name 方法:

class FormCategory < ActiveRecord::Base
...
def formatted_name
if inactive
"#{name} (inactive)"
else
name
end
end
...
end

然后使用它:

options_from_collection_for_select(FormCategory.all, :id, :formatted_name)

关于ruby-on-rails - 选择_tag : Style and Modify Options Upon Condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34869305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com