我找到了一个帮助方法,我希望用它来调整我网站上嵌入的视频的大小。我尝试过几种方法使用这种方法,但收到了多个未定义的方法错误。这是方法:
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 %>
部分,可用HERE,将宽度和高度更改为所需的值。我应该在哪里放置方法以及如何调用它?
更新
根据Karel的建议,我将方法放在links_helper.rb中并在视图中使用了<%= raw (link.embed_code).resize_video %>
,但收到此错误undefined method resize_video for #<String:0x492bf40>
答案 0 :(得分:1)
我建议你把helper方法放在视图的相应帮助器中(即如果视图文件属于控制器xyz,那么应该有一个名为xyz_helper的帮助器)。这是rails惯例。如果在多个控制器视图中使用了辅助方法,我们可以将它放在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
答案 1 :(得分:0)
将帮助程序方法放在video_helper.rb
文件夹中的文件名helpers
中。更多here。