字符串连接不可能?

Bv2*_*202 4 ruby ruby-on-rails

所以在过去的两个小时里,我一直在努力为所有用户填充一个组合框.我设法在组合框中获得所有的名字,但我想在组合框中使用它们的全名.没问题,你会想到,只是连接名称,你就完成了.+和<<应该是连接运算符来执行此操作.所以这是我的代码:

<%= collection_select(:user, :user_id, @users, :user_id, :user_firstname + :user_lastname, {:prompt => false}) %>
Run Code Online (Sandbox Code Playgroud)

但似乎RoR不接受这个:

undefined method `+' for :user_firstname:Symbol
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

小智 14

您需要做的是在User模型上定义一个方法,为您执行此连接.符号无法连接.因此,对于您的用户模型,添加此功能:

def name
  "#{self.first_name} #{self.last_name}"
end
Run Code Online (Sandbox Code Playgroud)

然后将视图中的代码更改为:

<%= collection_select(:user, :user_id, @users, :user_id, :name, {:prompt => false}) %>
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.