0

私のモデルには、変数を返すメソッドがあります。

def do_something(param1, param2)
  #code
  return variable
end

ショーページに部分的にレンダリングされたものからこのメソッドを正常に呼び出しました。このような:

<%= @user.do_something(param1, param2) %>

インデックスページにレンダリングされた部分から同じメソッドを呼び出したい。しかし、私はエラーに遭遇しています。編集:クラスエラーの未定義のメソッド。

すべてのメソッドコードをコピーして、次のような複製メソッドに貼り付けることができます。

def self.do_something(param1, param2)
  #code
  return variable
end

インデックスページからこのように部分的に呼び出します...

<%= User.do_something(param1, param2) %>

...しかし、それはDRYではありません。おそらく、もっと適切な解決策があることを私は知っています。私はまだレールの力学を学んでいるので、あなたの助けに感謝します。

4

1 に答える 1

1

少なくとも、委任を使用できます。

class User < ActiveRecord::Base
  def do_something param1, param2
    self.class.do_something param1, param2
  end

  def self.do_something param1, param2
    ...
    return variable
  end
end
于 2012-08-25T21:03:16.937 に答える