0
我有一些問題的link_to遠程發送後到另一個控制器

...結果也不盡我的期望..LINK_TO遠程=>真怪造成路由問題,Rails 3中

我有這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 

我經過數萬各種實例看,他們似乎推薦以上,但它不工作..我做錯了什麼?

任何輸入非常感謝!

謝謝!

編輯:

我試過這種方法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}); 
    } 
}); 
+0

據我所知,你的link_to的使用是正確的。但是,錯誤消息表明問題在於路由,而不在鏈接中(這解釋了由link_to生成的錯誤url)。嘗試運行'rake routes'並確認你想要的路線在那裏。我總是使用路由符號,所以請嘗試將'post'iframize''切換到'post:iframize'。 – Faisal 2012-04-02 06:49:02

回答

0

你有資產包括通過jquery_ujs rails_ujs/application.css文件

= link_to image_tag("http://img.youtube.com/vi/#{vid.content}/1.jpg"), "url_path", :method => :post, :remote => true 

轉換以下成軌道路徑:像iframeize_videos_path(經由rake routes產生)

:controller => 'videos', :action => "iframize", :video_id => vid.id, 
+0

這裏是我的耙路線:iframize_videos POST /videos/iframize(.:format){:action =>「iframize」,:controller =>「videos」}當我把「iframize_videos_path」我到localhost/nodes/iframize_videos – Stpn 2012-04-02 07:09:28

+0

哦,是的,我確實有jquery_ujs在application.js – Stpn 2012-04-02 07:11:43

+0

btw,你需要做= link_to image_tag('路徑'),iframize_videos_path,:remote => true,:video_id => vid.id,:method =>:post – Sairam 2012-04-02 07:43:44

0

你需要區分網址選項,HTML options.so使用

<%= 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} %> 
+0

這需要我的視頻顯示動作... – Stpn 2012-04-02 07:10:31

+0

我已更新答案 – 2012-04-02 07:21:16

+0

相同的效果 - 「無法找到視頻與id = iframize」.. – Stpn 2012-04-02 07:29:05