从控制器渲染文本到视图

时间:2013-04-18 11:19:12

标签: ruby-on-rails ruby

我有一个控制器,我想将文本呈现到/views/test/index.html.erb:

class TestController < ApplicationController
  def index
    if testStuff() do
      <render text to view>
    end
  end

  private 
  testStuff()
    return true
  end
end

最简单的方法是什么? 谢谢你的回答!

4 个答案:

答案 0 :(得分:0)

执行控制器rails的方法索引后,将尝试加载名为index.html.erb(或您使用的任何其他模板)的视图。 您可以在索引中声明成员,该成员将可用于视图,例如:

def index
  @text = "Hello world!"
end

然后在你看来:

...
<span><%= @text %></span>
...

如果您的@text变量包含您信任的html,请在视图中使用@ text.html_safe。

答案 1 :(得分:0)

尝试将文本分配到实例变量中。像:

class TestController < ApplicationController
  def index
    if testStuff() do
      @text = "Text what you want to render"
    end
  end

在视图中

<%= @text %>

答案 2 :(得分:0)

您可以像这样呈现为json

def index
    if testStuff() do
     @category_lists = CategoryList.get_categories(current_user.id)

     respond_to do |format|
       format.html # index.html.erb
       format.json { render json: @category_lists }
     end
    end
  end

答案 3 :(得分:0)

虽然不好,但您可以将测试移至视图:

class TestController < ApplicationController
  helper_method :is_test?      

  def index
  end

  private 

  def is_test?
    return true
  end
end

然后在视图中:

<% if is_test? %>
  <span>Some text here</span>
<% end %>