RubyOnRails放入erb

时间:2014-07-01 23:53:11

标签: ruby-on-rails ruby erb

我正在开发一个Web应用程序,该应用程序具有从文本文件中获取和解析数据的视图(文本文件仅在后端可用,而不是在用户处可用)。我编写了一个函数,它接收文本文件并将其转换为字符串数组,它被称为txt_to_arr。然后我有另一个函数line_fetcher,它只调用txt_to_arr并从数组中输出一个随机字符串。

在我看来,我将控制器的功能称为:<% line_fetcher %>

我已将txt_to_arrline_fetcher放入视图控制器的帮助器rb文件中,当我运行rails s时,随机字符串根本没有呈现。我还试过<% puts line_fetcher %>

我已经在Bash中检查过该函数确实从文本文件中输出了随机字符串,因此该函数可以正常工作。此外,正在解析的文本文件位于public文件夹中。有谁知道为什么会这样?

非常感谢!

4 个答案:

答案 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 %>