ich einige Probleme habe mit link_to Fern einen Beitrag an einem anderen Controller zu senden ... Das Ergebnis ist nicht ganz das, was ich erwarte, dass ..link_to remote => true verursacht seltsame Routing-Probleme, Rails 3
Ich habe dies in 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 %>
Und ich habe dies in videos_controller:
def iframize
@video = Video.find(params[:video_id])
respond_to do |format|
format.js
end
end
Und dies in Routen:
resource :videos do
collection do
post 'iframize'
end
end
Problem ist, dass, wenn ich auf den Link klicken, ist es mir
http://localhost:3000/videos/iframize?method=post&video_id=20
zu
nimmt
und ich
Couldn't find Video with id=iframize
Ich schaute durch zig verschiedene Beispiele und sie scheinen die oben zu empfehlen, aber es funktioniert nicht .. Was mache ich falsch?
Jede Eingabe sehr geschätzt!
Danke!
EDIT:
ich diesen Ansatz jquery Funktion ausprobiert und es funktionierte irgendwie (nur für das erste Video in der Schleife natürlich):
<% @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});
}
});
Soweit ich sagen kann, verwenden options.so, um Ihre Nutzung von link_to ist richtig. Die Fehlermeldung weist jedoch darauf hin, dass das Problem im Routing und nicht in der Verknüpfung liegt (was die falsche URL erklärt, die von link_to generiert wird). Versuchen Sie "Rake-Routen" auszuführen und bestätigen Sie, dass die gewünschte Route vorhanden ist. Ich verwende immer Symbole für Routen, also versuche, 'post 'iframe' zu' post: iframize' zu wechseln. – Faisal