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

era*_*ran 0 html ruby ruby-on-rails

我正在创建一个网络应用程序.虽然它工作得很好,但在轨道上的ruby中将"<%%>"标签内的整段代码编写起来非常难看.

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

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

例如:

控制器文件:

class WelcomeController < ApplicationController
 def index
 end
 def myfunc(x)
  puts x
 end
end
Run Code Online (Sandbox Code Playgroud)

HTML文件(index.html):

<h1>Welcome</h1>
<p>
<%= myfunc(5) %>
</p>
Run Code Online (Sandbox Code Playgroud)

Dan*_*nne 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
Run Code Online (Sandbox Code Playgroud)

的使用private是不需要的,但唯一的好做法,使该方法不能被意外用作控制器的动作或事情.