如何在HTML页面中包含我自己的Ruby(on rails)函数

时间:2011-10-06 09:52:41

标签: html ruby-on-rails ruby

我正在创建一个网络应用。 虽然它很有效,但在“< %%>”中编写完整的代码片段在轨道上的红宝石中的标签非常难看。

我尝试在controller.rb中定义一个函数,然后从html页面调用它。 这不起作用,因为它无法识别该功能。

我很感激这里有任何帮助。我把功能放在了正确的位置吗?我需要使用“require”加载吗?

例如:

控制器文件:

class WelcomeController < ApplicationController
 def index
 end
 def myfunc(x)
  puts x
 end
end

HTML文件(index.html):

<h1>Welcome</h1>
<p>
<%= myfunc(5) %>
</p>

2 个答案:

答案 0 :(得分:6)

你所指的是在Rails中被称为帮助者。有两种方法可以实现这一点。

第一个选项是将要访问的方法放在辅助模块中。最常见的是ApplicationHelper,您可以在RAILS_ROOT/app/helpers/application_helper.rb中找到它。如果您将方法放在那里,可以从视图中访问它。

另一种方法,如果您仍然需要/需要在控制器中使用该方法,那么您可以使用helper_method函数,如下所示:

def WelcomeController < ApplicationController
  helper_method :my_func

private
  def my_func(x)
    puts x
  end
end

不需要使用private,但这只是一种良好的做法,因此该方法不会被意外地用作Controller操作或其他内容。

答案 1 :(得分:0)

Ruby on rails具有Model-View-Controller架构 - 在这些架构中,您无法从视图中访问控制器。

您可以使用函数的输出设置变量,并从视图中访问该变量