0

私の見解では、ユーザーが製品のカタログを閲覧できるようにしたいと考えています。階層は次のとおりです。

Category
  Product
    AdditionalInfoForm

私のメイン ビューでは、カテゴリのパーシャルをレンダリングします。

#opContent
  = render :partial => 'op_main_categories'

op_main_categories パーシャルは次のように定義されます。

- @controller.getPortalCategories.each do |c|
  = link_to_function "#{c.name}", :class => 'opCategoryHeaderText' do |page| 
    - partial = escape_javascript(render :partial => 'op_secondary_categories', :locals => { :c => c })
    - page << "$('opContent').update(\"#{partial}\")"

ユーザーが上記のパーシャルのリンクをクリックすると、製品は op_secondary_categories パーシャルによってレンダリングされます。

 - @controller.getPortalProductsForCategory(c).each do |p|
   = link_to_function "#{p.name}", :class => 'opCategoryHeaderText' do |page| 
     - partial = escape_javascript(render :partial => 'op_did_line', :locals => { :p => p })
     - page << "$('opContent').update(\"#{partial}\")"

op_did_line は今のところプレーンテキストです:

%p Yes, this is form! Hello?

この設定により、次のリンクが生成されます (1 つのカテゴリに対して)。

<a class="opCategoryHeaderText" onclick="$('opContent').update("<a class=\"opCategoryHeaderText\" href=\"#\" onclick=\"$(\'opContent\').update("<p>Yes, this is form! Hello?</p>\n"); return false;\">IPSDN + PVC 3yr<\/a>\n<a class=\"opCategoryHeaderText\" href=\"#\" onclick=\"$(\'opContent\').update("<p>Yes, this is form! Hello?</p>\n"); return false;\">PVC<\/a>\n"); return false;" href="#">PVC</a>

link_to_function の 2 番目の層を追加すると、すべてのコードが壊れます。階層を参照できなくなりました。link_to_function が 1 つしかない場合は、参照できます。

このプロジェクトはまだ Rails 2.3 を使用しています。これを実装するより良い方法は何ですか?

4

1 に答える 1