我正在尝试创建一个表单来创建新产品。在页面顶部,我希望能够选择它是什么类型的产品,并且在表单中填写的表格将在下面填入正确的字段(并且在任何时候,可以更改产品类型)< / p>
我的假设是我应该使用jQuery和AJAX为每个部分呈现不同的部分 - 也就是说,如果用户选择了产品类型,那么相应的表单会加载具有适当形式而没有页面刷新的部分。
就像我以前的帖子一样,我的第一个问题就是确保在rails社区中这是可以接受的。
然而,具有讽刺意味的是,我的问题不在于AJAX或jQuery,而在于部分。我创建了一个名为“_shirt.html.erb”的“衬衫”部分,如下所示:
<% form_for(:shirt, :url => { :action => 'save_to_session' } ) do |f| %>
<table summary="Shirt form fields">
<tr>
<th>Shirt Size S:</th>
</tr>
<tr>
<td><%= f.select(:size_s, 0..99) %> </td>
</tr>
</table>
<%= submit_tag("Create Item") %>
<% end %>
在我看来,我只想用
渲染部分<%= render "shirt" %>
但是当页面加载时,它不会加载表单。除了布局中的链接外,正文是空的。我在网上查了一下,找不到这个有什么问题,有什么想法吗?
答案 0 :(得分:1)
以这种方式呈现表单不一定是“常规”,但如果您的应用程序需要此功能,那么我不会让rails让您拥有某种功能。在我看来,你当然应该尽可能地遵循rails惯例,但不应该让这成为一个限制因素。
就未呈现的表单而言,我认为您只需要在表单标记中添加=
,因此它应该是:
<%= form_for(:shirt, :url => { :action => 'save_to_session' } ) do |f| %>
而不是
<% form_for(:shirt, :url => { :action => 'save_to_session' } ) do |f| %>
希望这有帮助!
答案 1 :(得分:0)
如果要渲染部分内容,请不要指定:partial关键字?
<%= render :partial => "shirt" %>