在ruby on rails上,我可以在一个控制器中添加多个资源吗? 因为,如果我在一个控制器中添加多个资源,则在一个视图文件中会有多个Create,Update,index .. action和html.erb文件。那么我该怎么办?如果我想在一个控制器中设置多个资源?那些相同的名称动作如何在一个文件中成功存在?
答案 0 :(得分:1)
update_lecture
,update_speaker
等。lecture_id
和speaker_id
。但是......你想这样做吗? 否强>!
只需考虑逻辑,稍微简化一下,默认情况下它是:
[controller one] -> [model one]
[controller two] -> [model two]
[..etc..]
但现在变成了:
/-> [model one]
[controller one] --
\-> [model two]
最终它会成为:
/-> [model one]
[controller one] --
\-> [model two]
/-> [model three]
[controller two] ---> [model four]
\-> [model five]
/-> [model six]
[controller three which was added later] -
\-> [model three again because oops I forgot
that it was already in controller two]
从控制器到底层模型有一个简单易懂的明显映射。这很好!当您拥有/speaker/42
之类的网址时,可以轻松了解所涉及的方法和类。但是当你使用像你一样要求的方案时,所有的赌注都会被取消。 /speaker/42
可能会在您的应用中以任何地方结束。
还要记住,使用Ruby on Rails的一个巨大优势是,基本上每个RoR应用程序或多或少看起来都很相似。这很棒,因为如果我的同事正在度假,我可以解雇他的"他的"我以前从未见过的应用程序,并修复了客户刚刚调用的关键错误!
在RoR中做一些单一的东西是有充分理由的。但这绝对不是其中之一; - )