Использование вспомогательного метода rails - PullRequest
0 голосов
/ 23 октября 2011

Я нашел вспомогательный метод, который хотел бы использовать для изменения размера встроенных видео на моем сайте.Я пытался использовать этот метод несколькими способами, но получил несколько неопределенных ошибок метода.Вот метод:

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

Я хотел бы применить этот метод к <%= raw link.embed_code %> части моего обзора, доступной ЗДЕСЬ , чтобы изменить ширину и высоту до желаемых значений.Где я должен поместить метод и как он должен называться?

Обновление

По совету Карела я поместил метод в links_helper.rb и использовал <%= raw (link.embed_code).resize_video %> впросмотр, но получил эту ошибку undefined method resize_video for #<String:0x492bf40>

Ответы [ 2 ]

1 голос
/ 23 октября 2011

Я бы предложил вам поместить вспомогательный метод в соответствующий помощник представления (т. Е. Если файл представления принадлежит контроллеру xyz, должен быть помощник с именем xyz_helper). Это конвенция рельсов. Если вспомогательный метод используется в нескольких представлениях контроллера, мы можем поместить его в application_helper.

Если вы получаете неопределенный метод для embed_code, мы должны передать эту переменную следующим образом

<%= 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 голосов
/ 23 октября 2011

Поместите ваши вспомогательные методы в имя файла video_helper.rb в папке helpers. Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...