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

この方法でフォームをレンダリングすることは必ずしも「従来型」ではありませんが、アプリケーションでこの機能が必要な場合は、レールで特定の機能を保持することはできません。私の意見では、もちろん、可能な限りレールの規則に従う必要がありますが、それを制限要因にしないでください。

フォームがレンダリングされない限り=、フォームタグにを追加するだけでよいと思います。

<%= 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 に答える