gpt4 book ai didi

ruby-on-rails - 用于下拉框的 Ruby on Rails 静态列表选项

转载 作者:行者123 更新时间:2023-12-03 15:12:48 26 4
gpt4 key购买 nike

我的数据库中有一个 Person 表,并且有一个名为 person_type 的列。我不想要 person_type 的数据库模型,因为它总是“志愿者”或“参与者”。我将在哪里创建一个静态数组来保存这些值,以及如何将该数组绑定(bind)到 Ruby on Rails 选择助手?最好只创建一个选择助手吗?

谢谢!

最佳答案

实现这一点的最简单方法是在您的 Person 模型中添加一个常量:

class Person < ActiveRecord:Base
PERSON_TYPES = ["Volunteer", "Participant"]
end

然后您可以使用选择助手访问它:
f.select(:person_type, Person::PERSON_TYPES)

如果需要考虑i18n,只需稍作修改即可。

鉴于您的 i18n 文件中的这些条目:
# config/locales/en.yml
person_types:
volunteer: "Volunteer"
participant: "Participant"

# config/locales/de.yml
person_types:
volunteer: "Freiwillige"
participant: "Teilnehmer"

您可以这样更新模型和 View :
# app/models/person.rb
class Person < ActiveRecord:Base
# The values have been made lower-case to match the conventions of Rails I18n
PERSON_TYPES = ["volunteer", "participant"]
end

# app/views/people/_form.html.erb
<%= f.select :person_type, Person::PERSON_TYPES.map { |s| [I18n.t("person_types.#{s}"), s] } %>

这将为您提供所需的 HTML:
<!-- assuming the current I18n language is set to 'de' -->
<select name="person[person_type]">
<option value="volunteer">Freiwillige</option>
<option value="participant">Teilnehmer</option>
</select>

关于ruby-on-rails - 用于下拉框的 Ruby on Rails 静态列表选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073296/

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