0

我正在尝试制作一个表格来创建一个新产品。在页面的顶部,我希望能够选择它是什么类型的产品,并且完成的表单将在下面填充正确的字段(并且在任何时候,都可以更改产品类型)

我的假设是我应该使用 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" %>

但是当页面加载时,它不会加载表单。除了布局中的链接外,正文是空的。我在网上看了看,找不到这有什么问题,有什么想法吗?

4

2 回答 2

1

以这种方式呈现表单不一定是“常规的”,但如果您的应用程序需要此功能,那么我不会让 rails 让您使用某个功能。在我看来,你当然应该尽可能地遵循 Rails 约定,但不应该让它成为限制因素。

至于未呈现的表单,我相信您只需=在表单标签中添加一个,它应该是:

<%= form_for(:shirt, :url => { :action => 'save_to_session' } ) do |f| %>

代替

<% form_for(:shirt, :url => { :action => 'save_to_session' } ) do |f| %>

希望这可以帮助!

于 2013-01-14T01:44:04.860 回答
0

如果你想渲染一个部分,你不必指定 :partial 关键字吗?

<%= render :partial => "shirt" %>
于 2013-01-14T01:49:55.863 回答