ruby-on-rails – Ruby on Rails:“form_for(:product,…)”和
发布时间:2020-12-17 03:34:18 所属栏目:百科 来源:网络整理
导读:是 %= form_for(:product,:url = {:action = 'update',:id = @product.id})) do |f| % ...% end % 和 %= form_for(@product,:id = @product.id})) do |f| % ...% end % 完全相同的 ? 解决方法 form_for帮助程序中的@product附带了更多功能. :product仅影响
是
<%= form_for(:product,:url => {:action => 'update',:id => @product.id})) do |f| %> ... <% end %> 和 <%= form_for(@product,:id => @product.id})) do |f| %> ... <% end %> 完全相同的 ? 解决方法
form_for帮助程序中的@product附带了更多功能.
:product仅影响输入字段的id和名称.例如,您在表单中提交了一个文本: <%= form_for :product,:url => {...} do |f| %> <%= f.text_field :price %> <% end %> 生成的html看起来像: <input type="text" id="product_price" name="product[price]" /> id和name值由:product.to_s和文本字段名称确定. 如果你使用@product,则:url不是必需的,因为url将根据@产品的状态确定: >如果@product是新记录,则该网址将发布以进行创建 输入字段的id和名称受@ product的类名影响,因此在使用单表继承时这很重要.输入字段的值将自动分配@ product的属性值.因此,如果你使用@product,html输出将如下所示: <input type="text" id="product_price" name="product[price]" value="some value" /> 假设@ product的类名是Item,那么输出将变为: <input type="text" id="item_price" name="item[price]" value="some value" /> 当然,您可以同时使用:product和@product: <%= form_for :product,@product do |f| %> :product控制输入字段的名称和id,@ product控制url和input字段的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |