首页 > 解决方案 > 如何在 Ruby 的课堂上创建一个方法?我想在范围内使用

问题描述

很遗憾,我无法弄清楚如何解决这个问题并寻求帮助,但我需要你的帮助。我正在做一个项目,但我不知道如何在 Ruby 的课堂上创建一个方法。

通过使用下面的方法,我可以做我想做的事。

string = 1234
NKF.nkf('-X -w', string).tr('0-9a-zA-Z', '0-9a-zA-Z') # => '1234'

现在我想做这个类方法,这样我就可以在不同的地方重复使用它们。(因为它看起来有点长)

为了解决这个问题,我尝试制作一个名为 modify_string 的方法,如下所示。(代码有点改变)

(author.class)
def modify_string(ids)
   ids.tr('0-9a-zA-Z', '0-9a-zA-Z').gsub('、',',').split(',')
end

scope :search_user, lambda {| user_id|
   results = self.where(id: user_id.modify_string(ids))}

但它调用了一个错误,说“66”的未定义方法`modify_string':String

66是从html.erb上的输入发送的,当我编写下面的代码时,它完美地工作。

scope :search_user, lambda {| user_id|
   results = self.where(id: user_id.tr('0-9a-zA-Z', '0-9a-zA-Z').gsub('、',',').split(',')
)}

我想以某种方式为此制定一个好方法。

你能帮帮我吗?谢谢你。

标签: ruby-on-railsrubymethods

解决方案


推荐阅读