呈现部分视图时 ajax 中的动态内容
dynamic content in ajax while rendering partial views
如何在用户点击不同链接时获取动态内容?
views/dashboard/index.html.haml
.container
- @trips.each do |trip|
= link_to trip.id, quick_view_trips_path, remote: true
我很确定 quick_view_trips_path
是错误的,因为所有链接都是这样的:
<a href="/trips/quick_view">1</a>
<a href="/trips/quick_view">13</a>
<a href="/trips/quick_view">51</a>
我需要以某种方式使这些链接动态化,然后当用户单击它时,模态 window 也会是动态的。
如果我将 quick_view_trips_path
替换为 trip
= link_to trip.id, trip, remote: true
没有任何反应,url 更改为正确的 url,但我的模态 window 没有通过 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 的末尾并使一切重新正常工作?
这是我的其余代码:
views/trips/quick_view.js.erb
$('body').append('<%= j render partial: "trips/quick_view" %>');
views/trips/_quick_view.html.haml
.root-container
= @trip.title
= @trip.image
= @trip.more_details
这现在也不起作用,因为我的应用程序 returns 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
我是否还需要向此控制器添加任何内容以确保通过部分生成正确的内容?
这样怎么样,
路径
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>
控制器
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
它将响应views/trips/quick_view.js.erb
文件
如何在用户点击不同链接时获取动态内容?
views/dashboard/index.html.haml
.container
- @trips.each do |trip|
= link_to trip.id, quick_view_trips_path, remote: true
我很确定 quick_view_trips_path
是错误的,因为所有链接都是这样的:
<a href="/trips/quick_view">1</a>
<a href="/trips/quick_view">13</a>
<a href="/trips/quick_view">51</a>
我需要以某种方式使这些链接动态化,然后当用户单击它时,模态 window 也会是动态的。
如果我将 quick_view_trips_path
替换为 trip
= link_to trip.id, trip, remote: true
没有任何反应,url 更改为正确的 url,但我的模态 window 没有通过 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 的末尾并使一切重新正常工作?
这是我的其余代码:
views/trips/quick_view.js.erb
$('body').append('<%= j render partial: "trips/quick_view" %>');
views/trips/_quick_view.html.haml
.root-container
= @trip.title
= @trip.image
= @trip.more_details
这现在也不起作用,因为我的应用程序 returns 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
我是否还需要向此控制器添加任何内容以确保通过部分生成正确的内容?
这样怎么样,
路径
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>
控制器
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
它将响应
views/trips/quick_view.js.erb
文件