2011-10-23 10 views
0

自分のサイトに埋め込みビデオのサイズを変更するために使用したいヘルパーメソッドが見つかりました。私はいくつかの方法でこのメソッドを使用しようとしましたが、複数の未定義のメソッドエラーを受け取りました。ここに方法があります:railsヘルパーメソッドを使用

def resize_video(new_width,new_height) 
    width,height = embed_code.match(/width=.?(\d+).*height=.?(\d+)/).to_a.drop(1) 
    embed_code.gsub(width,new_width).gsub(height,new_height) 
end 

私が所望の値に幅と高さを変更するには、HERE利用できる、私の見解の<%= raw link.embed_code %>部分にこの方法を適用したいと思います。メソッドをどこに置くべきですか、どのように呼び出すべきですか?

更新

パーカレルのアドバイス、私はlinks_helper.rb方法を入れて、ビューに<%= raw (link.embed_code).resize_video %>を使用しますがundefined method resize_video for #<String:0x492bf40>

答えて

1

ヘルパーメソッドをビューの対応するヘルパーに配置することをお勧めします(ビューファイルがコントローラxyzに属する場合は、名前がxyz_helperのヘルパーが必要です)。これはレールの規則です。複数のコントローラビューでヘルパーメソッドを使用する場合は、application_helperに配置できます。 0x4a6bfb0>:あなたはembed_codeのための未定義のメソッドを取得している場合は

、我々は今、私は#<#<クラスについては、この `未定義のメソッドresize_videoを取得しています、

<%= raw resize_video(link.embed_code, width, height) %> 
def resize_video(embed_code, new_width, new_height) 
    width,height = embed_code.match(/width=.?(\d+).*height=.?(\d+)/).to_a.drop(1) 
    embed_code.gsub(width,new_width).gsub(height,new_height) 
end 
+0

感謝を次のようにその変数を渡す必要があり0x4a69610 > '私は非常に多くの異なる方法を試しました。これはレール3.1の問題でしょうか? – Dru

+0

ここでスタックトレースから数行を投稿してください。 – nkm

+0

私はまだレール3.1で作業していませんが、これはレール3.1の問題ではないと思います。ヘルパーファイルのコードが壊れているか、おそらくヘルパーをロードしていない可能性があります。リンクがモデルインスタンスの場合は、上のコードをモデルメソッドに置き、ビューから呼び出すことができます。 – nkm

0

helpersフォルダ内のファイル名video_helper.rbであなたのヘルパーメソッドを置き、このエラーを受け取りました。 More here

関連する問題