【问题标题】:Concatenate field names in select在选择中连接字段名称
【发布时间】:2023-03-29 18:56:01
【问题描述】:

我有一个表格,允许您按名称选择设施,然后将设施的 ID 写入数据库中的一个值。

<%= f.collection_select(:transfer_to_id, Facility.all, :id, :facility_name, {:include_blank => true}, {:class => 'select'})%>

我希望能够选择设施名称,但在设施名称的右侧会在表单中显示设施地址。我不确定如何执行此操作,可能是某种数组或使用辅助方法。

如果有人能提供一些帮助,我们将不胜感激。

【问题讨论】:

  • 如果我理解正确,您想在选择框中连接设施的名称和地址吗?例如Facility X - 123 Abc Street?
  • 没错。我想出了这个,但不确定它是否正确。 ' def facility_select Facility.order("facility_name").map{|facility| ["#{facility.facility_name} #{facility.facility_address}", facility.id]} end'

标签: ruby-on-rails-3 forms activerecord


【解决方案1】:

这是通过创建一个 Class 方法最终为我正常工作的方法。

  def facility_name_with_facility_address
    "#{facility_name} | #{facility_address}"
  end

【讨论】:

    【解决方案2】:

    这是未经测试的,所以请耐心等待,但您需要为您的 Facility 模型添加一个方法:

    def facility_name_with_facility_address
      facility_name << " " << facility_address
    end
    

    然后在您的表单中更改以下内容:

    <%= f.collection_select(:transfer_to_id, Facility.all, :id, :facility_name, {:include_blank => true}, {:class => 'select'})%>
    

    到这里:

    <%= f.collection_select(:transfer_to_id, Facility.all, :id, :facility_name_with_facility_address, {:include_blank => true}, {:class => 'select'})%>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-13
      • 2012-01-16
      相关资源
      最近更新 更多