【问题标题】:Difficulty Rendering Partial from another View从另一个视图难以渲染部分
【发布时间】:2015-08-18 16:38:57
【问题描述】:

在Rails 4.2.1 中渲染部分内容时遇到问题。 Rails 服务器日志中没有错误,视图中也没有输出。我删除了as: 选项,结果还是一样。即使我对部分内容进行硬编码,视图也不会显示信息,服务器日志也不会显示错误。

app/views/registry_requests/_index.html.erb

<p><%= request.vehicle.make %></p>

app/views/users/_admin.html.erb

<!-- Columns -->
<div class="row">
  <!-- Dashboard -->
  <%= render 'admin_panel' %>

  <!-- Body Content -->
  ...

    <!-- Widgets -->
    ...
          <%= render partial: "registry_requests/index", collection: @registry_requests, as: :request %>

        ...
      <!-- Blog Feed -->
      <div class="col-sm-6">
        <div class="admin-widget">
          <h1 class="widget">Recent Blog Posts</h1>
          ...
        </div>
        <a class="admin-widget-link" href="blog_create.html">Create Post</a>
      </div>
      <!-- Current Moderators -->
      <div class="col-sm-6">
        <div class="admin-widget">
          <h1 class="widget">Current Moderators</h1>
          ....
        </div>
        <a class="admin-widget-link" href="#">Manage Moderators</a>
      </div>
    </div>
  </div>
</div>

日志

Started GET "/users/6" for ::1 at 2015-08-18 12:35:30 -0400
Processing by UsersController#show as HTML
  Parameters: {"id"=>"6"}
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ?  ORDER BY "users"."id" ASC LIMIT 1  [["id", 6]]
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 6]]
  Rendered users/_admin_panel.html.erb (0.4ms)
  Rendered registry_requests/_index.html.erb (0.0ms)
  Rendered users/_admin.html.erb (3.8ms)
  Rendered users/show.html.erb within layouts/application (5.8ms)
Completed 200 OK in 117ms (Views: 113.7ms | ActiveRecord: 0.2ms)

【问题讨论】:

  • 是@registry_requests 在您的UsersController#show 中定义的吗?
  • @LuisMenjivar ...这完全逃脱了我。谢谢你。请提交您的答案,以便我将其标记为正确。

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4


【解决方案1】:

不错!

确保@registry_requests 在您的UsersController#show 中定义

【讨论】:

    【解决方案2】:

    试试这个:

    <% request.each do |one_request| %>
      <p><%= one_request.vehicle.make %></p>
    <% end %>
    

    【讨论】:

    • 这不会在视图中提供任何错误或信息。另外,既然我们正在渲染一个集合,我们不应该在部分内部循环吗?
    【解决方案3】:

    你应该尝试做这样的事情:

    在您的 app/views/users/_admin.html.erb

    <% @registry_requests.each do |request| %>
      <%= render partial: "registry_requests/index", :locals => {:registry_request => request} %>
    <% end %>
    

    app/views/registry_requests/_index.html.erb

    <p><%= registry_request.vehicle.make %></p>
    

    由于@registry_requests 是一个集合,因此您必须遍历它以获取每条记录,以便找到每条记录的make。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-21
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多