渲染模板不起作用

时间:2016-02-19 01:39:06

标签: ruby-on-rails activerecord

我在使用不同的控制器渲染动作时遇到了麻烦。

我想从TagsController

渲染索引操作
class TagsController < ApplicationController
  def index
    @tags = Tag.all
  end
end

在tags / index.html.slim中,它成功从db返回对象。

= @tags

=>#<Tag::ActiveRecord_Relation:0x007ff7c65ca060>

所以我在users / new.html.slim中尝试了这段代码。

= render :template => "tags/index"

它没有显示任何内容。谁能告诉我什么是错的?

一切都有帮助,谢谢!

3 个答案:

答案 0 :(得分:0)

您可以从控制器渲染模板,而不是从视图中渲染模板。喜欢这个

class TagsController < ApplicationController
  def index
    @tags = Tag.all
    render :template => "tags/index"
  end
end

答案 1 :(得分:0)

如果你放,

render :template => "tags/index"

控制器中,它将查找目录和文件,如:

views/tags/index.html.erb

因为您可以从 @tags 中提取数据。

答案 2 :(得分:0)

解决了它。我刚使用了before_filter方法。

before_filter :load_categories, only: [:index]
 # your public controller methods   

private

def load_categories
 @categories = Category.all
end

我想这不是完美的方式,它不是从不同的控制器调用动作。我也会尝试其他答案。