を初期化します。MyModule.rbでレール:私は、次のファイル階層を持つライブラリの衝突からロードされたモジュール内のメソッド
のLib> MyModule.rb のLib> MyModule.rb> MyClass.rb
を、私は持っていますinitializeメソッド:私は試してみて、私のクラスのインスタンスを作成するときに
def initialize(variable, parameter)
@variable = variable
@parameter = parameter
end
しかし、結果は誤りである:
undefined method: set is not defined for nil
私は初期のこの再構築されたバージョンでそれを修正しようとした:
def initialize(variable, parameter)
@variable = variable
@parameter = parameter
end
これは私が受信したエラーを軽減。しかし、今私はHTML.erbファイルで私のクラスのインスタンスを作成するために行く:
ここ<%= MyModule::MyClass.new("string", 1) %>
私は、引数のエラーを取得する:0
のための2誰もがこれを説明できますか?要求されたよう
詳細情報:
私は、一般的に使用される要素のための便利なラッパーとしてhtmlタグを作成するいくつかのメソッドを作成しようとしています。特に、これらは、新しいメソッドを作成するために、railsのcontent_tagヘルパーメソッドを利用します。最終的には、単純な< <演算子を使用してネストされたタグのサポートを追加する予定です。
のLib/tags.rb
module Tags
include ActionView::Helpers::TagHelper
include ActionView::Helpers::JavaScriptHelper
include ActionView::Context
def initialize(type, content, options, &block)
@type = type
@content = content
@options = block_given? ? nil : options
@block = block_given? ? block : nil
end
def show
if @block.nil?
content_tag(@type, @content, @options)
else
content_tag(@type, @content, @options) { @block.call }
end
end
end
さて、これはモジュールの最低レベルです。これらは私が実装しようとしているすべてのタグに共通するものです。
を(localhostに行くときに送られているものである)私のテストファイルmain.rbで次にmodule Tags
class DivTag
def initialize(content, options, &block)
super(:div, content, options, &block)
end
end
end
:私は、タグフォルダ内のクラス(のLib /タグ/ div.rb)を持っています
これが私の間違いです。
これは少し不明です。定義されているクラス/モジュールが何であるか、それらが互いにどのように関係しているか、どのメソッドがどこで定義されているかを記述できますか? – tsherif
私は詳細情報を追加しました –