设置动态rails路由

时间:2012-03-19 17:19:30

标签: ruby-on-rails routes

我有一个控制器和一个视图(ctrler)

控制器

    def index
       ...
    end 

    def show
        @text = params[:text]    
    end

end

查看(show.html.erb)

<%=@text %>

的routes.rb

resources :ctrler

match 'ctrler/:text' => 'ctrler#show'

如果我启动rails s服务器并加载http://localhost:3000/ctrler/hiiiiiii我什么也得不到,但是如果我加载http://localhost:3000/ctrler?text=hiiiiii我就会收到短信!

我仍然试图抓住我习惯使用的导轨,但有人可以给我一些指导我在正确的轨道上还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

resources :ctrler 

创建以下规则

match "ctrler/:id" => "ctrler#show"

此路线与

冲突
match 'ctrler/:text' => 'ctrler#show'

如果发生冲突,首先出现的规则优先,所以当你转到'ctrlr / hiiiii'时,它将id参数设置为hiiiii,而不是text参数。尝试将routes.rb更改为

match 'ctrler/:text' => 'ctrler#show'
resources :ctrler

看看是否有帮助。