У меня проблемы с удаленной отправкой сообщения link_to на другой контроллер ... Результат не совсем то, что я ожидаю ..
У меня есть это в node_content.html.erb:
<% @node.videos.each do |vid| %>
<div id="vid_vid"><%= link_to image_tag("http://img.youtube.com/vi/#{vid.content}/1.jpg"), :controller => 'videos', :action => "iframize", :video_id => vid.id, :method => :post, :remote => true %></div>
<% end %>
И у меня есть это в videos_controller:
def iframize
@video = Video.find(params[:video_id])
respond_to do |format|
format.js
end
end
И это в маршрутах:
resource :videos do
collection do
post 'iframize'
end
end
Проблема в том, что когда я нажимаю на ссылку, это приводит меня к
http://localhost:3000/videos/iframize?method=post&video_id=20
и я получаю
Couldn't find Video with id=iframize
Я просмотрел десятки различных примеров, и они, кажется, рекомендуют вышеупомянутое, но это не работает .. Что я делаю не так?
Любой вклад приветствуется!
Спасибо!
EDIT:
Я попробовал этот подход с помощью функции jquery, и она вроде работала (конечно, только для первого видео в цикле):
<% @node.videos.each do |vid| %>
<%= image_tag("http://img.youtube.com/vi/#{vid.content}/1.jpg", :id => 'img_div') %>
<div id="vid_vid"> <%= vid.id %></div>
<% end %>
$('#img_div').on({
'click': function() {
var vid_id = document.getElementById("vid_vid").innerHTML;
$.post("/videos/iframize/", {video_id: vid_id});
}
});