Mis*_*hko 5 forms ruby-on-rails form-for ruby-on-rails-3
是
<%= form_for(:product, :url => {:action => 'update', :id => @product.id})) do |f| %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)
和
<%= form_for(@product, :url => {:action => 'update', :id => @product.id})) do |f| %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)
完全相同的 ?
将@product在form_for辅助船有更多的功能.
该:product只影响输入字段的ID和名称.例如,您在表单中提交了一个文本:
<%= form_for :product, :url => {...}?do |f| %>
<%= f.text_field :price %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
生成的html看起来像:
<input type="text" id="product_price" name="product[price]" />
Run Code Online (Sandbox Code Playgroud)
该id和name值由确定:product.to_s和文本字段名.
如果你使用@product,:url则没有必要,因为url将根据@product状态确定:
@product是新记录,则网址将发布到createupdate输入字段的id和名称受到@product类名的影响,所以当你使用单表继承时这很重要.输入字段的值将自动分配给@product属性值.因此,如果您使用@product,html输出将如下所示:
<input type="text" id="product_price" name="product[price]" value="some value" />
Run Code Online (Sandbox Code Playgroud)
假设@product的类名是Item,那么输出将改为:
<input type="text" id="item_price" name="item[price]" value="some value" />
Run Code Online (Sandbox Code Playgroud)
当然,你可以使用:product和@product:
<%= form_for :product, @product do |f| %>
Run Code Online (Sandbox Code Playgroud)
该:product控制输入申请的名称和ID,以及@product控制URL和输入字段的值.
| 归档时间: |
|
| 查看次数: |
3646 次 |
| 最近记录: |