私のモデルにはクラスメソッドがあり、ビューヘルパーの1つからメソッドにアクセスする必要があります。現在はinclude TalkHelper
が含まれていますが、まだNoMethodErrorがあります。Rails 3モデルでヘルパーメソッドを表示
8
A
答えて
9
あなたのlibフォルダにヘルパーを置き、どこにでも含めることができます。 のlib/some_helper.rb
module SomeHelper
def somedef
#your code there
end
end
6
あなたはクラスメソッドでヘルパーが必要な場合は、あなたがそれをextend
する必要があると思い、ないinclude
それ:このよう 。
module TalkHelper
def woo; 'hoo' end
end
class MyClass
extend TalkHelper
def self.boo; woo end
end
MyClass.boo #=> 'hoo'
ヘルパーがcontroller
、またはお使いのモデルでは使用できません要求のコンテキストから何か他のものに依存してもよいとだけ、ビューコンテキストの外ヘルパーに注意してください。はあなたが必要がないように、あなたのコードをリファクタリングすることです
ApplicationController.helpers.your_helper_method
OR
YourController.helpers.your_helper_method
最適なソリューション:あなたのモデルで
41
は、次のような何かを行うことができますモデルからビューヘルパーコードを呼び出すことができます。 RoRの方法ではありません。他の人が指摘するように、あなたはlibフォルダにヘルパーコードを抽出することができます。
詳細はこれを参照してください。
+0
私はあなたの助言に従い、私のコードを屈折させたので、モデルでヘルパーメソッドを使う必要はありませんでした。 – LanguagesNamedAfterCofee
'module'の(小文字)すべきですか? –
一定! (15記号) – railscard