Ruby 发表于 Rails 在下拉文本中加入两个字符串

Ruby on Rails Joining Two Strings in Dropdown Text

我在 rails 网站上有一个 ruby,其中有一个名为 "meetings" 的页面。这些会议目前运行良好,但我想更改其中一个下拉列表显示其数据的方式。目前,我的 controller/view:

中有这个

控制器

@meeting_times = MeetingTime.select("id, meeting_type, meeting_at").where("
  (meeting_at > ?)", Time.now + 1.week).order("meeting_at")

查看

<%= f.select :meeting_time_id, options_from_collection_for_select
  (@meeting_times, "id", "meeting_at") %>

目前,如您所见,下拉列表仅显示会议时间。我想要做的是让下拉列表在一个字符串中显示 meeting_type + meeting_time 。这听起来很简单,但是 meeting_type 是一个 int 值。所以,我需要说 "If meeting_type == 0 then display 'Staff Meeting' + meeting_time",等等。如何在不更改 meeting_type 的数据库值的情况下完成此操作?

在 MeetingTime 模型创建方法中

def meeting_time_display
   "#{meeting_type_names[meeting_type]} #{meeting_at}"
end

private

def meeting_type_names
   @@m_type_names ||= ['Staff Meeting', 'Type 2', ..., 'Type n']
end

正在通话中

<%= f.select :meeting_time_id, options_from_collection_for_select (@meeting_times, "id", "meeting_time_display") %>