如何定义两个控制器之间的关系。我有一个名为游乐设施的管制员,另一名名为注册人。无论如何,我可以从游乐设施控制器访问注册人数据库吗?我正在想2个控制器之间的关系
@registrant = Registrant.find(:first)
从内部乘坐,但没有奏效。 有什么建议吗?
感谢
如何定义两个控制器之间的关系。我有一个名为游乐设施的管制员,另一名名为注册人。无论如何,我可以从游乐设施控制器访问注册人数据库吗?我正在想2个控制器之间的关系
@registrant = Registrant.find(:first)
从内部乘坐,但没有奏效。 有什么建议吗?
感谢
您可以从您的游戏机控制器访问您的注册模式,就像任何其他控制器访问它。你是什么意思Registrant.find(:first)
不工作?
现在,如果您的游乐设施模型和注册人模型(如has_many关联)之间存在关系(或通常称为关联),则可以使用嵌套资源将一个控制器嵌套在另一个控制器中。
查看Action Controller Overview和Rails Routing from the Outside In指南,并考虑收集一本关于类似Agile Web Development with Rails的Rails的好书。
事实证明,我只是有一个大写错误,它已经注册到注册人模式了!感谢您的帮助! – 2009-12-04 17:08:01
如果定义模式:驾驶和注册(或更一般的用户),那么你可以设置游乐设施控制器上的before_filter:
before_filter :get_user
def get_user
@user = User.find(:first, :conditions => %Q(userid = "#{params[:user_id]}"))
end
这将取得与USER_ID传过来的参数的用户在控制器生成视图之前。
这似乎并没有回答他的问题,更简单地说你可以做'User.find(params [:user_id]'或者我错过了什么? – 2009-12-04 03:58:09
糟糕,错过了一个正确的paren在那里。 – 2009-12-04 03:59:25
是的,这应该工作。为了使术语正确,您正在从RidesController访问注册人模型。他们都应该在同一个数据库中,但在单独的表中。
请发布您收到的错误消息。
您可以从任何控制器访问任何模型。上面的代码应该可以工作。此外,我假设你的意思是注册人表,而不是注册人数据库。 – 2009-12-04 04:58:59
上面的行应该只是检索第一个注册人。那么你是什么意思:“但那不起作用”。你有错误消息?你想重定向到或呈现注册人视图吗?您无法从乘车视角访问注册人?请解释。 – nathanvda 2009-12-04 12:06:23