【问题标题】:Rails : how to render an other action in the controller, in js not in html?Rails:如何在控制器中呈现其他动作,在 js 中而不是在 html 中?
【发布时间】:2012-03-31 20:14:03
【问题描述】:

我的控制器中有两个动作:

def find
  @item = Item.find(params[:id])
  render 'result', :id => @item.id
end

def result
  @item = Item.find(params[:id])
  respond_to do |format|
    format.js
  end
end

问题在于我首先调用find 操作,然后调用result 操作,但采用html 格式。所以'format.js'永远不会被触发。

如何在find动作结束时渲染js格式的result动作?

非常感谢!

【问题讨论】:

  • 如果你能用编程语言标记它会有所帮助。

标签: ruby-on-rails json render respond-to


【解决方案1】:

在你的 find 方法中试试这个。

render 'result', :id => @item.id, :format => :js

【讨论】:

    【解决方案2】:

    render 方法只渲染视图,不调用其他操作

    【讨论】:

      【解决方案3】:

      这里更大的问题是你试图调用另一个动作,这打破了 MVC 模式。即使操作被定义为方法,也可以将它们视为其他东西,不能调用其他操作。

      另外,请回复您视图中调用/触发这些操作的代码。

      【讨论】:

        【解决方案4】:
        Try this
        
        <%= render 'components/activity-slider', populer_packages: @populer_packages %>
        
            components/activity-slider
        
            <div class="slider sliderSecondary activitiesSlider">
            <% populer_packages.each do |package| %>
                <a href="#" class="sliderGrid ">
                  <div class="sliderCont">
                    <div class="sliderGradient"></div>
                    <div class="sliderThumb">
                      <div class="sliderImgWrap">
                        <%= image_tag "#{package.image}", class: "img-fluid sliderImg" %>
                        <div class="overlayCaptionCont">
                          <div class="overlayCaptionWrap">
                            <div class="overlayCaption">
                              <ul class="list-unstyled captionList">
                                <li>test</li>
                              </ul>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </a>
              <% end %>
            </div>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-19
          • 2016-03-24
          • 2014-01-25
          • 1970-01-01
          • 1970-01-01
          • 2015-06-23
          • 1970-01-01
          相关资源
          最近更新 更多