在Rails待办事宜应用程序(来自Railscast的代码)的索引文件中,它列出了分配给任务控制器中实例变量的不完整和完整的任务。注意它调用render @incomplete_tasks和渲染@complete_tasks,而部分只调用使用一个部分渲染两个实例变量
_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 %>
你失去了我的“是Rails的可以忽略的实例变量的上半年”。你能解释一下吗? – jvnill 2013-02-22 07:38:19