2012-02-25 71 views
1

我在这里做错了什么?rails 3 routing ...无法传递参数[:n_id]

路由文件

match '/ignore/:n_id',:to => 'businesses#ignore', :as => 'ignore' 

指数

<%= link_to "Ignore", ignore_path(@n_ignore = o.n_id) %> 

结果URL(这是正确的)

http://0.0.0.0:3000/ignore/47 

控制器(其中,我希望做一些东西与N_ID)

def ignore 
     @searchresultignore = params[:n_id] 
end 

重定向回索引页面后,我有一个空值

<%= debug @searchresultignore %> 
+0

请显示重定向的控制器代码。请在控制器中显示完整的索引操作。 – 2012-02-25 06:14:04

回答

0

控制器的实例变量不能跨请求共享,如果你重定向到index行动,仍然需要参数,你应该使用类似的东西:

redirect_to :action => :index, :n_id => params[:n_id] 
+0

这是有道理的......但是,我甚至能够在def ignore中获得@searchresultsignore。任何想法如何得到这个工作?对不起,我是一个noob – rehcelf 2012-02-25 06:44:31

+0

然后在索引操作中分配'@ searchresultsignore',因为这是你需要的地方。另外考虑直接在你的视图中使用'params [:n_id]'而不是创建一个实例变量。 – 2012-02-25 19:57:05