在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