在我的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
也与这种情况有关?
答案 0 :(得分:0)
这是因为在Mailboxer的更高版本中,模型在Mailboxer下被命名空间。 (例如Mailboxer :: Conversation,Mailboxer :: Message。)
我在GitHub问题上commented。
答案 1 :(得分:-1)
您可以尝试提供部分的完整路径,例如
<%= render :partial => "yourfoldername/conversation", collection: @conversations %>