ruby on rails route params in controller

时间:2011-06-01 14:56:25

标签: ruby-on-rails routes

routes.rb中:

match 'first/#!/:name' => 'first#first'

first_controller.rb:

class FirstController < ApplicationController
  def first
    @name = params[:name]
  end
end

但是当我呈现网址时,@name变量为nil:http://localhost:3000/first/#!/sayuj

请帮忙

2 个答案:

答案 0 :(得分:10)

URL中第一个#之后的任何内容都不会(通常)发送回服务器;它只在客户端使用。

因此,客户端中的URL http://localhost:3000/first/#!/sayuj实际上会在服务器端调用URL http://localhost:3000/first/

有关详细信息,请参阅以下帖子:

答案 1 :(得分:1)

Jits是正确的,url中的#会丢弃其余的url,我相信你的路线不正确,它应该是这样的:

match 'first/:name', :to => 'first#first'

文档位于Engine yard rails 3 routes.