繁体   English   中英

缺少带有轨道的局部

[英]missing partials with rails

def some_action
  @posts = Post.all
  render partial: 'layouts/things'
end

在我的布局目录中,我将部分内容( _things.html.erb

我的其他部分效果很好。 但是它不会导致部分抛出异常

Missing partial layouts/things with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "/my/path/appname/app/views"

编辑1

  def some_action
    @posts = Post.all
    respond_to do |format|
      format.json
    end
  end

好吧,我改变了我的控制器链接,但随后又出现了同样的异常。

编辑2

我已经在我的views/controller_name/_some_action.json.erb创建了

这是控制器

  def some_action
    @posts = Post.all
    respond_to do |format|
      format.json { render json: @posts }
    end
  end

我的_some_action.json.erb文件具有

<%= render partial: 'shared/information', post: @posts.name %>

并在视图共享目录中创建_information..js.erb

我的_information.js.erb的示例文本为

test

我从检查元素检查的控制器中收到json响应。 但这不是呈现我需要的实际文本(即test

好吧,恕我直言,您需要命名您的部分喜欢

_things.js.erb

或者没有?

正如Jacub Kuchar提到的那样,如果您尝试提供JSON响应,则应相应地命名您的部分(即_things.js.erb )。 您还应该将其放置在“共享”目录中,而不是在“布局”中,因为它是部分布局,而不是布局。

但是,我还将保留呈现控制器的哪个视图的逻辑,并让视图本身进行处理。

因此,您的控制器可以简单地说:

respond_to :json # (and whatever other response types you want to support: xml, etc)

def some_action
  respond_with @posts = Post.all
end

然后在views / {controller name} /some_action.js.erb下拥有一个匹配的视图,该视图显示:

<%= render partial: 'shared/things', posts: @posts %>

这样,您的控制器就不会受到视图逻辑的污染。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM