[英]In ruby on rails, can I add more than one resources in one controller?
在 ruby on rails 中,我可以在一个控制器中添加多个资源吗? 因为,如果我在一个控制器中添加多个资源,那么一个视图文件中就会有多个创建、更新、索引..动作和 html.erb 文件。 如果我想在一个控制器中设置多个资源,我该怎么办? 那些同名动作如何成功存在于一个文件中?
你能做这个吗? 当然。 您可以:
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
这样的 URL 时,它可以很容易地理解所涉及的方法和类。 但是当你使用你所要求的方案时,所有的赌注都没有了。 /speaker/42
可以在你的应用程序的任何地方结束。
还请记住,使用 Ruby on Rails 的一个巨大优势是,基本上每个 RoR 应用程序或多或少都相似。 这太棒了,因为如果我的同事在度假,我可以启动我以前从未见过的“他的”应用程序,并修复客户刚刚调用的那个关键错误!
在 RoR 中做单一的东西有一些很好的理由。 但这绝对不是其中之一;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.