我正在开发一个Web应用程序,该应用程序具有从文本文件中获取和解析数据的视图(文本文件仅在后端可用,而不是在用户处可用)。我编写了一个函数,它接收文本文件并将其转换为字符串数组,它被称为txt_to_arr
。然后我有另一个函数line_fetcher
,它只调用txt_to_arr
并从数组中输出一个随机字符串。
在我看来,我将控制器的功能称为:<% line_fetcher %>
。
我已将txt_to_arr
和line_fetcher
放入视图控制器的帮助器rb
文件中,当我运行rails s
时,随机字符串根本没有呈现。我还试过<% puts line_fetcher %>
我已经在Bash中检查过该函数确实从文本文件中输出了随机字符串,因此该函数可以正常工作。此外,正在解析的文本文件位于public
文件夹中。有谁知道为什么会这样?
非常感谢!
答案 0 :(得分:1)
使用<%= %>
在视图中输出内容,以便:
<%= line_fetcher %>
答案 1 :(得分:1)
尝试将代码放在控制器中,并使用
将输出分配给变量a=`line_fetcher` (note the backtics) as detailed at
http://rubyquicktips.com/post/5862861056/execute-shell-commands
然后在您的视图中<%= a %>
。
并将文件放在rails应用程序的根目录中
答案 2 :(得分:0)
像erb
之类的简单<%= line_fetcher %>
适用于简单变量。
但是如果你想输出任何模型/数据库实例,那么执行:
<%= ModelName.first.inspect %>
请注意inspect
字。
如果使用HAML
,请执行:
=ModelName.first.inspect
答案 3 :(得分:0)
在ERB中:<% %>
表示此处有Ruby代码需要解释。 <%= %>
表示解释并输出ruby代码,即显示/打印结果。
因此,如果要在标准ERB文件中输出,似乎需要使用extra =符号。
<%= line_fetcher %>