1

Как получить динамический контент, когда пользователь нажимает на разные ссылки?динамический контент в ajax при визуализации частичных представлений

просмотров/панель/index.html.haml

.container 
    - @trips.each do |trip| 
    = link_to trip.id, quick_view_trips_path, remote: true 

Я довольно уверен, что неверно, так как все ссылки это:

<a href="/trips/quick_view">1</a> 
<a href="/trips/quick_view">13</a> 
<a href="/trips/quick_view">51</a> 

Как-то мне нужно сделать эти ссылки динамичны, а затем, когда пользователь нажимает на нее, модальное окно также будет динамичным.

Если я заменяю только с trip

= link_to trip.id, trip, remote: true 

Ничего не происходит, и изменения URL-адрес на правильный URL, но мое модальное окно не получает визуализации через AJAX. Вот пример того, что URL выглядит сейчас:

<a href="/trips/slug-title-url-correct">1</a> 

В дополнение к тому, что я пытаюсь достичь с динамическим контентом, есть способ, возможно, изменить URL так:

<a href="/trips/slug-title-url-correct?quick_view=on">1</a> 

Можно ли получить ?quick_view=on, добавляя конец URL-адреса и все снова работать?

Вот остальная часть моего кода:

просмотров/поездки/quick_view.js.erb

$('body').append('<%= j render partial: "trips/quick_view" %>'); 

просмотров/поездки/_quick_view.html.haml

.root-container 
    = @trip.title 
    = @trip.image 
    = @trip.more_details 

Это не работает ни сейчас, как мое приложение возвращает undefined method

routes.rb

resources :trips do 
    collection do 
    get 'quick_view' 
    end 
end 

trips_controller.rb

def quick_view 
    respond_to do |format| 
    format.html # quick_view.html.erb 
    format.js # quick_view.js.erb 
    format.json { render json: @trip } 
    end 
end 

Нужно ли мне что-нибудь добавить к этому контроллеру, а также для обеспечения правильного содержания будет генерироваться через парциальное ?

ответ

1

Как об этом пути,

  1. Путь

    link_to trip.id, quick_view_trips_path(:js, trip_id: trip.id), remote: true 
    

    Это сделает, <a href="/trips/quick_view.js?trip_id=1">1</a>

  2. Контроллер

    def quick_view 
        @trip = Trip.find(params[:trip_id]) 
        respond_to do |format| 
        format.html # quick_view.html.erb 
        format.js # quick_view.js.erb 
        format.json { render json: @trip } 
        end 
    end 
    

    Это Респ ond views/trips/quick_view.js.erb file

+0

awesome! благодаря! это работает – hellomello

Смежные вопросы