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)
您所指的是在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是不需要的,但唯一的好做法,使该方法不能被意外用作控制器的动作或事情.
| 归档时间: |
|
| 查看次数: |
1385 次 |
| 最近记录: |