Ошибка маршрутизации при попытке вызвать пользовательский метод через link_to - PullRequest
0 голосов
/ 16 ноября 2010

Привет, я пытаюсь вызвать свой метод offer_bid через следующую строку link_to erb: - ​​

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

Но я получаю следующую ошибку маршрутизации: -

No route matches {:action=>"offer_bid", :controller=>"bids"}.

Должен ли я явно определять маршрут в моем файле rout.rb ????

У меня есть соответствующий маршрут link_to, как показано ниже, когда я запускаю "rake route": -

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"}    

Обратите внимание, что path_name, соответствующее action => "offer_bid, это просто пробел !!! Почему здесь пусто ???
Метод, который я пытаюсь вызвать, приведен ниже: -

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

Любые объяснения и предложения для достижения моего сценария действительно приветствуются. Заранее спасибо.

Я использую рельсы версии 3.01

1 Ответ

1 голос
/ 16 ноября 2010

Вам нужно будет добавить свое пользовательское действие как member к ресурсу.

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

Я использовал get выше, потому что я не уверен, как вы планируете это делать, но предположим,это получение, так как оно идет по ссылке.

Более подробная информация содержится в Руководствах по Rails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...