开发者

Creating new rails action doesn't work?

i have a controller "Apps". It consists of one action "index". Now I want to add a new action called "buy":

def buy
  respond_to do |format|
    format.html
  end
end

i added a buy.html.erb to the views, but when browsing to /apps/buy, i get following message:

Unknown action - The action 'show' could not be found for AppsController

in the routes I added this:

  match '/apps/buy', :controller => 'apps', :action => 'buy'
开发者_如何学Go

thanks in advance!


The url is being caught by the standard /apps/:id route, I assume you also have resources :apps in your routes?

Simply place the buy route first:

match '/apps/buy', :controller => 'apps', :action => 'buy'
resources :apps

Bear in mind that routes are executed in the order they are defined, so the specific ones need to precede the general.

A simpler approach as @Ryan suggests is adding a collection route to the resource:

resources :apps, :collection => { :buy => :get }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜