Ruby on rails Rails:如何在控制器中以js而不是html呈现其他动作?

Ruby on rails Rails:如何在控制器中以js而不是html呈现其他动作?,ruby-on-rails,json,render,respond-to,Ruby On Rails,Json,Render,Respond To,我的控制器中有两个操作: 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.

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

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格式呈现
结果
操作


非常感谢

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

在find方法中尝试此操作

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

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

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

试试这个
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>
组件/活动滑块
如果您使用编程语言对此进行标记,将会有所帮助。