难以从另一个视图渲染部分内容
Difficulty Rendering Partial from another View
我在 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)
试试这个:
<% request.each do |one_request| %>
<p><%= one_request.vehicle.make %></p>
<% end %>
你应该尝试做这样的事情:
在你的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
.
不错!
确保 @registry_requests
在您的 UsersController#show
中定义
我在 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)
试试这个:
<% request.each do |one_request| %>
<p><%= one_request.vehicle.make %></p>
<% end %>
你应该尝试做这样的事情:
在你的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
.
不错!
确保 @registry_requests
在您的 UsersController#show