2010-04-04 44 views
0

我有問題,使用link_to_remotelink_to_remote在軌,問題通:ID

link_to_remote 文件的例子說

link_to_remote "Delete this post", :update => "posts", :url => { :action => "destroy", :id => post.id } 

此代碼使HTML代碼如下

<a href="#" onclick="new Ajax.Updater('posts', '/blog/destroy/3', {asynchronous:true, evalScripts:true}); return false;">Delete this post</a> 

,但我的應用程序不要」噸。我的html是

<a href="#" onclick="new Ajax.Updater('posts', '/blog/6', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('2C4Yo8OIDN+dm9oieL37uRg++PuWa8LCz18gW5Cu+Vg=')}); return false;">Delete this post</a> 

在哪裏銷燬url?

我預計 '/博客/銷燬/ 6',但實際上 '博客/ 6'

什麼問題?

我的rails版本是2.3.5


追加問題

真的是我在更新操作問題

我想用下面的代碼

link_to_remote "toggle", :url => { :action => "update", :id => post.id } 

但這代碼不'博客/更新/ 6'它也是'博客/ 6' ......

如果點擊鏈接使這個錯誤

ActionController::UnknownAction (No action responded to 6. Actions: create, index, new, show, and update): 

....我route.rb是默認

ActionController::Routing::Routes.draw do |map| 
    map.resources :aaa 

    map.resources :timetables 
    map.resources :alarams 
    map.resources :users 

    map.login 'login', :controller => 'user_sessions', :action => 'new' 
    map.logout 'logout', :controller => 'user_sessions', :action => 'destroy' 
    map.resources :user_sessions 

    # The priority is based upon order of creation: first created -> highest priority. 

    # Sample of regular route: 
    # map.connect 'products/:id', :controller => 'catalog', :action => 'view' 
    # Keep in mind you can assign values other than :controller and :action 

    # Sample of named route: 
    # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase' 
    # This route can be invoked with purchase_url(:id => product.id) 

    # Sample resource route (maps HTTP verbs to controller actions automatically): 
    # map.resources :products 

    # Sample resource route with options: 
    # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get } 

    # Sample resource route with sub-resources: 
    # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller 

    # Sample resource route with more complex sub-resources 
    # map.resources :products do |products| 
    #  products.resources :comments 
    #  products.resources :sales, :collection => { :recent => :get } 
    # end 

    # Sample resource route within a namespace: 
    # map.namespace :admin do |admin| 
    #  # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb) 
    #  admin.resources :products 
    # end 

    # You can have the root of your site routed with map.root -- just remember to delete public/index.html. 
    map.root :controller => "welcome" 

    # See how all your routes lay out with "rake routes" 

    # Install the default routes as the lowest priority. 
    # Note: These default routes make all actions in every controller accessible via GET requests. You should 
    # consider removing or commenting them out if you're using named routes and resources. 
    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 

回答

4

您需要添加:method => 'delete'你的鏈接參數。看起來你已經在路由表中聲明瞭posts作爲資源。

+0

如果不刪除?像更新,插入它也添加:方法? – seapy 2010-04-04 16:16:10

+0

'method'是一個動詞,它定義了什麼樣的請求將被髮送。然後rails路由系統會選擇它必須啓動相應控制器的'destroy'動作。 – Eimantas 2010-04-04 16:51:58

0

我想你使用的是漂亮的腳手架發電機,它給你一個選項來包含/排除銷燬行動。如果那不是你正在使用的發生器,那麼你沒有在你的控制器中定義的「銷燬」動作。因此錯誤:

ActionController::UnknownAction (No action responded to 6. Actions: create, index, new, show, and update):

您沒有控制器中的「銷燬」操作來響應。