在我看来,我希望用户能够浏览产品目录。层次结构如下:
Category
Product
AdditionalInfoForm
在我的主视图中,我为类别渲染了部分内容:
#opContent
= render :partial => 'op_main_categories'
op_main_categories partial定义如下:
- @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 partial进行渲染:
- @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?
此设置将生成以下链接(对于一个类别):
<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会破坏所有代码。我无法再浏览层次结构。当只有一个link_to_function存在时,我可以浏览。
该项目仍在使用Rails 2.3。有什么更好的方法来实现它?
答案 0 :(得分:0)
使用page.insert_html does not insert html with link_to_function (rails)中的“Jose”
中的答案解决了我的问题答案中提供的代码放在rails / lib / rails_ext.rb
中