我试图通过的link_to发送一个变量,而不在Ruby on Rails的使用URL的查询,来自一个控制器的索引视图中的另一控制器的索引使用。

基本上,我需要通过Turma.id(学校类ID),向Elementos_turma控制器(在类人民),所以可使用它,并筛选指标:ElementosTurma.find(:所有,:条件= > {:turma_id => XXXXX}),以显示所选择的类的人民。

有可能? 也许不使用会话变量? 也许发送变量的方法第一控制器上,给它发送其他控制器? (如果是的话怎么样?也不是很明智的回报率... :))

有帮助吗?

解决方案

无需特殊的方法来得到你需要的信息,路线的魔法就行了。

在您的routes.db文件,你应该能够确定这样的事情,

map.resources :class, :has_many => :students

然后,如果你运行“耙路线”,你应该会看到类似这样的路线

class_students GET /classes/:class_id/students(.:format)  {:controller=>"students", :action=>"index"}

您可以拨打这条道路在你看来像这样

class_students_path(class_id)

然后在您的控制器,你将有机会获得PARAMS [:类标识码]

该航线的名字是不是很漂亮,但这应该工作。

修改--------------------------------------

根据您的意见,您不能使用map.resources出于某种原因或其他...

 map.class_students '/:class_id/students', :controller => 'students', :action => 'index'

这会产生在控制器在视图中的相同的路线,相同PARAM。

话虽这么说,我不知道怎么的服务器错误可以使用map.resources禁止你

其他提示

可以不而不包括在链路的数据通过一个链路传送数据。

然而,这听起来像你只需要使用嵌套的资源。 (因为我会讲英文,我将无法应对另一种语言,做什么到我这里来。)的网址,你想成为把人送上火星或许应该看起来更像是这个,如果你想成为RESTful的:

/classes/1/people/

这是“Rails的方式”,表示要抢人级#1的,和Rails提供了内置的路由方法,以使这个容易。从外部在轨道指南中一文参阅 Rails的路由。

scroll top