簡體   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