Rails: как сделать другое действие в контроллере, в js не в html? - PullRequest
5 голосов
/ 01 апреля 2012

У меня в контроллере два действия:

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 действие result в формате js?

Большое спасибо!

Ответы [ 4 ]

6 голосов
/ 01 апреля 2012

Попробуйте это в вашем методе поиска.

render 'result', :id => @item.id, :format => :js
1 голос
/ 29 ноября 2018
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>
1 голос
/ 01 апреля 2012

Большая проблема в том, что вы пытаетесь вызвать другое действие, которое нарушает схему MVC. Даже если действия определены как методы, думайте о них как о чем-то другом, что не может вызывать другие действия.

Также, пожалуйста, ответьте кодом из ваших представлений, которые вызывают / инициируют эти действия.

1 голос
/ 01 апреля 2012

render метод только отображает представления, не вызывает другое действие

...