2013-07-24 46 views
0

呈现形式和变量可以请人向我解释这是怎么回事就在这里魔术通过谐音

场景通过教程创建任务管理器,我需要显示我的任务去后面,所以我

each .. do 

但后来我需要添加一些复选框和按钮划掉我的任务,并将其移动到另一个类别,这意味着处理表单。

指数:

<%= render @incomplete_tasks %> 
<%= render @completed_tasks %> 

_Task部分:

<%= form_for task do |f| %> 
    <%= f.check_box :complete %> 
    <%= f.submit "Update" %> 
    <%= f.label :complete, task.name %> 
    <%= link_to "(remove)", task, method: :delete, data: {confirm: "Are you sure?"} %> 
<% end %> 

这使得合并做/每形式我上网,我已经在这个代码迷迷糊糊的几个尝试失败后(WAT!),这很好,但我不知道它是如何做的,这是不好的。不幸的是,文档here中的渲染变量没有太多信息。

Rails如何知道我想呈现_task partial为特定变量?这是命名惯例吗?

我该如何在没有偏色的情况下编码?

+0

是的,它的命名。你可以手动发射表单。 –

回答

1

是的,命名约定的确在起作用。

如果传递的变量是一个类似数组的对象,它会自动设置:collection选项来渲染partials。并且对于集合中的每个元素,它都会尝试呈现与集合中ActiveRecord对象相同名称的部分。

没有泛音,你可以这样做:

<% @incomplete_tasks.each do |task| %> 
    <%= form_for task do |f| %> 
    <%= f.check_box :complete %> 
    <%= f.submit "Update" %> 
    <%= f.label :complete, task.name %> 
    <%= link_to "(remove)", task, method: :delete, data: {confirm: "Are you sure?"} %> 
    <% end %> 
<% end %>