此用例的助手或类方法 - Rails

时间:2017-11-10 23:26:29

标签: ruby-on-rails ruby ruby-on-rails-5

我正在使用Rails 5.

目标:当用户注册时,他们需要输入他们的全名(这是数据库中的一列)。在我的应用程序的各个部分(主要是视图),我想将他们的名字拆分为只显示他们的名字。

我可以采取的方式:

1 - 辅助方法

# application_helper.rb

def first_name(full_name)
  full_name.split[0]
end

2级方法

 # user.rb

 def first_name
   self.full_name.split[0]
 end

哪种方式是首选方法?两者都有优点/缺点吗?我很难弄清楚要使用哪一个,或者只是偏好。

1 个答案:

答案 0 :(得分:0)

两件事。首先,这个:

full_name.split[0]

不是类方法。这是一个实例方法。

其次,IMO,您希望尽可能在视图中使用 little 逻辑。并且,您的观点不应该知道关于您的模型或其内部工作的任何。如果由于某种原因,您的模型或数据发生变化并且10,1000,5000,50,tree,birch,12IN 11,1100,5500,55,tree,spruce,10IN 12,1130,5560,54,powerpole,tele,wood,12IN,guyed 不再是获取名字的方式,会发生什么?然后,您必须记住,您将该逻辑放在帮助器中并在那里进行更改。

所以,选择#2 - 实例方法。