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