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

时间:2017-02-01 11:02:20

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 checkbox

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

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

这只显示联系人&#39; 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" } %>

这可能吗?

3 个答案:

答案 0 :(得分:2)

<%= 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

希望这会有用

答案 1 :(得分:0)

您可以在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" } %>

答案 2 :(得分:0)

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

def full_name
    firstname + " " + surname
end