2010-11-16 3 views
0

Salut, je suis en train d'appeler ma méthode offer_bid à travers la ligne de erb link_to suivante: -erreur de routage tout en essayant d'appeler une méthode personnalisée via un link_to

<%= link_to "Offer Bid", {:controller => "bids", :action => "offer_bid"}, 
     :remote => true %> 

Mais je reçois l'erreur de routage suivant: Dois-je définir explicitement un itinéraire dans mon fichier routes.rb? ????? ????????????????????????????????????????

J'ai la route des link_to correspondant comme suit quand je lance « routes râteau »: -

rake routes | grep bid 
     post_bids GET /posts/:post_id/bids(.:format)     {:controller=>"bids", :action=>"index"} 
     post_bids POST /posts/:post_id/bids(.:format)    {:controller=>"bids", :action=>"create"} 
     new_post_bid GET /posts/:post_id/bids/new(.:format)   {:controller=>"bids", :action=>"new"} 
    edit_post_bid GET /posts/:post_id/bids/:id/edit(.:format)  {:controller=>"bids", :action=>"edit"} 
      post_bid GET /posts/:post_id/bids/:id(.:format)   {:controller=>"bids", :action=>"show"} 
      post_bid PUT /posts/:post_id/bids/:id(.:format)   {:controller=>"bids", :action=>"update"} 
      post_bid DELETE /posts/:post_id/bids/:id(.:format)   {:controller=>"bids", :action=>"destroy"} 
          /bids/:bid_id(.:format)      {:controller=>"bids", :action=>"offer_bid"}  

Notez que le path_name correspondant à l'action => "offer_bid est juste un blanc !!! Pourquoi est-il blanc ici ???
la méthode que je suis en train d'appeler est le suivant: -

def offer_bid 
    @bid = Bid.find(params[:id]) 
    @post.bid_winner_id = @bid.user_id 
    @post.save 
    flash[:notice] = "Task offered to @post.user.email" 
end 

Toutes les explications et suggestions pour atteindre mon cas d'utilisation est très apprécié Th. avance d'avance.

J'utilise la version 3.01 rails

Répondre

1

Vous devez ajouter votre action personnalisée en tant que member à la ressource.

resources :bids do 
    member do 
    get 'offer_bid' 
    end 
end 

J'utilisé get ci-dessus parce que je ne sais pas comment vous envisagez de le faire, mais suppose que c'est un get car il arrive par un lien.

Vous trouverez plus d'informations dans le Rails guides.

Questions connexes