23

私は(プライマリ)パーシャルを使用しています:

<%= render partial: 'shared/page/head' %>

他の(セカンダリ)パーシャルを利用するもの:

<head>
  <%= render partial: 'shared/page/head/title' %>
  <%= render partial: 'shared/page/head/meta' %>
  ...
  <%= render partial: 'shared/page/head/fonts' %>
  ...
  <%= render partial: 'shared/page/head/google_analytics' %>
</head>

ご覧のとおりapp/view、これらのセカンダリ パーシャルはプライマリ パーシャルと同じディレクトリにありますが、現在は相対パスを使用しています。

相対パスを使用してみました:

<%= render partial: 'title' %>

または

<%= render partial: './title' %>

しかし、どちらも機能しません。

相対パスを使用して使用するパーシャルを部分的に解決する方法はありますか?

4

3 に答える 3

3

これはあなたの問題に対する1つの解決策かもしれません: http://apidock.com/rails/ActionController/Base/prepend_view_path

于 2014-03-19T13:22:19.330 に答える
1

それを実装するためのヘルパー メソッドを作成します。完璧に動作するように聞こえます。

def render_relative_partial(relative_path, option={})
    caller_path = caller[0].split(".")[0].split("/")[0..-2].join("/")
  path = caller_path.gsub("#{Rails.root.to_s}/app/views/","") + "/#{relative_path}"

  option[:partial] = path
  render option
end 
于 2019-05-26T03:28:34.843 に答える