查找部分的默认路径

时间:2014-10-21 04:55:38

标签: ruby-on-rails mailboxer

在我的app/views/conversations/index.html.erb中,我写的是:

<%= render @conversations %>

希望它会在同一目录中找到一个名为_conversation.html.erb的部分名称,并使用它来呈现@conversations中的每个元素。 (通常的Rails方式)

但是我收到了一个错误的模板错误:Missing partial mailboxer/conversations/_conversation

我正在使用Mailboxer宝石,而且没有这方面的文件。我知道我可以通过<%= render partial: 'conversation', locals: { conversations: @conversations } %>明确地呈现部分内容。

但是,我想知道为什么我的应用在@conversations而不是mailboxer/conversations/寻找conversations/的部分内容,以及是否有办法改变这种行为。

更多信息

<% @conversations.each do |conversation| %>
  <%= div_for conversation %>
<% end %>

生成HTML:

<div class="mailboxer_conversation" id="mailboxer_conversation_16"> ... </div>
<div class="mailboxer_conversation" id="mailboxer_conversation_17"> ... </div>
....

也许mailboxer_前面的conversation也与这种情况有关?

2 个答案:

答案 0 :(得分:0)

这是因为在Mailboxer的更高版本中,模型在Mailboxer下被命名空间。 (例如Mailboxer :: Conversation,Mailboxer :: Message。)

我在GitHub问题上commented

答案 1 :(得分:-1)

您可以尝试提供部分的完整路径,例如

<%= render :partial => "yourfoldername/conversation", collection: @conversations %>