在 Rails 待办事项应用程序的索引文件(来自 Railscast 的代码)中,它列出了分配给任务控制器中实例变量的不完整和完整任务。注意它是如何调用render @incomplete_tasks 和render @complete_tasks,而partial 只被调用
_task.html.erb
似乎这一部分用于渲染不完整和完整的任务。Rails 是否能够忽略实例变量的前半部分(即@incomplete 和@complete)来使用一个部分来渲染两者?
控制器
def index
if current_user
@incomplete_tasks = current_user.tasks.where(complete: false)
@complete_tasks = current_user.tasks.where(complete: true)
end
end
指数
<% if @incomplete_tasks.empty? && @complete_tasks.empty? %>
<p>Currently no tasks. Add one above.</p>
<% else %>
<h2>Incomplete Tasks</h2>
<div class="tasks" id="incomplete_tasks">
<%= render @incomplete_tasks %>
</div>
<h2>Complete Tasks</h2>
<div class="tasks" id="complete_tasks">
<%= render @complete_tasks %>
</div>
<% end %>
_task.html.erb
<%= form_for task, remote: true do |f| %>
<%= f.check_box :complete %>
<%= f.label :complete, task.name %>
<%= link_to "(remove)", task, method: :delete, data: {confirm: "Are you sure?"}, remote: true %>
<% end %>