3
match "/myroute*" => redirect("http://google.com"), :as => :myroute

上記の行routes.rbは、次のエラーを引き起こしています

/Users/user/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/racc/parser.rb:349:in `on_error':      (Racc::ParseError)
parse error on value ")" (RPAREN)
    from /Users/user/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/racc/parser.rb:99:in `_racc_do_parse_c'
    from /Users/user/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/racc/parser.rb:99:in `do_parse'

ワイルドカード(*)を追加しているためのようです。これを解決する方法はありますか?

4

2 に答える 2

6

ワイルドカード コンポーネントにも「ラベル」が必要です。

match "/myroute*something" => redirect("http://google.com"), :as => :myroute

/myrouteblah/myroute/hello/worldwhere params[:something]isblah/hello/worldそれぞれ一致します。

編集: http://guides.rubyonrails.org/v3.2/routing.html#route-globbingをまだチェックしていない場合はチェックしてください。

于 2012-10-17T02:45:39.283 に答える
0

これを試して:

match ':redirect' => redirect("http://google.com"), :as => :myroute , :constraints => { :redirect => /myroute.?/i }
于 2012-10-17T02:42:06.293 に答える