Ruby on Rails:是否可以根据 collection_check_boxes 显示两个变量?

Ruby on Rails: Is it possible to display two variables against with collection_check_boxes?

在我的 RoR 应用程序中,我为用户 select 他们的联系人显示了一个复选框。这是通过以下代码行完成的:

<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, :firstname, { prompt: "firstname" } %>

这只显示联系人的名字,是否可以同时显示名字和姓氏?

我试过以下方法,但都没有用。

<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, { :firstname & " " & :surname }, { prompt: "firstname" } %>
<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, { :firstname :surname }, { prompt: "firstname" } %>
<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, :firstname :surname, { prompt: "firstname" } %>

这可能吗?

<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]),:id, :full_name ,{ prompt: "firstname" } %>

在 model.rb 中添加

  def full_name
    "#{firstname} #{surname}"
  end

希望这会奏效

您可以在 user 模型中添加实例方法:

class User < ActiveRecord::Base
  def fullname
    firstname + surname
  end
end

并在此处使用:

<%= f.collection_check_boxes :contact_ids, Contact.where(user_id: session[:user_id]), :id, :fullname, { prompt: "firstname" } %>

您可以在 Contact 模型中使用这样的方法:

def full_name
    firstname + " " + surname
end