Rails在辅助方法中检查样式

时间:2013-12-02 20:34:08

标签: ruby-on-rails

我是Rails的新手,试图解决这个问题:我有一个商品清单,需要在不同的页面上以不同的形式出现。有一个帮助方法似乎允许这种情况发生 - 基本上,视图说渲染_goods.html.haml,它呈现适当的模板。这是goods.html.haml的缩写版本:

    - style ||= :full
      - cache [ 'v4', good, style ] do
      - if style == :full
         .listed_item.group(id="good_#{ good.id }")
         %h4= link_to good.name 
      - elsif style == :search_result
       = render 'goods/search_result', good: good 
      - elsif style == :lightbox
       = render 'goods/lightbox', good: good 
      - elsif style == :card
     %li
    = link_to photo_for(good.user, :thumb), good.user
    - else
     %li
      %span.name= link_to good.name

我查看了每个视图,发现每个视图都嵌入了该名称的类中,即search_result在search_result类中。所以我尝试将我想要出现的商品嵌套在

下的灯箱类中
<div class="lightbox">

,但没有运气。无论我做什么,它都会保持默认。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为你应该在不传递风格的情况下渲染_goods,试试:

render partial: 'whatever_is_your_path/goods', locals: { style: :lightbox }

我不确定为什么这种方式有时对我不起作用,但无论如何都要尝试:

render 'whatever_is_your_path/goods', style: :lightbox

顺便说一下,如果这些都不起作用,你应该提出你的问题,如何调用渲染来绘制你的部分。