Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails MVC在Rails中的便捷使用_Ruby On Rails_Model View Controller_Crud - Fatal编程技术网

Ruby on rails MVC在Rails中的便捷使用

Ruby on rails MVC在Rails中的便捷使用,ruby-on-rails,model-view-controller,crud,Ruby On Rails,Model View Controller,Crud,我有一个文章控制器,它管理所有的文章关系,比如作者、翻译、相关文章等等,在此时的一个更新操作中 该页面包含一系列“列表”,具有搜索和排序功能、CRD操作、用于创建新的和管理现有关联记录的表单 所有这些内容都由ArticleController编辑和更新操作以及每个列表的一组部分模板管理 我想通过添加额外的搜索表来查找关联记录,从而进一步扩展功能。稍后我将添加一些其他功能 我觉得这种方式(在一个编辑页面中进行所有关联管理)非常不方便。因此,最好为每个列表创建一些特殊的控制器,如: /article

我有一个文章控制器,它管理所有的文章关系,比如作者、翻译、相关文章等等,在此时的一个更新操作中

该页面包含一系列“列表”,具有搜索和排序功能、CRD操作、用于创建新的和管理现有关联记录的表单

所有这些内容都由ArticleController编辑和更新操作以及每个列表的一组部分模板管理

我想通过添加额外的搜索表来查找关联记录,从而进一步扩展功能。稍后我将添加一些其他功能

我觉得这种方式(在一个编辑页面中进行所有关联管理)非常不方便。因此,最好为每个列表创建一些特殊的控制器,如:

/articles/1/edit/authors
这个控制器的名字应该是什么?它应该是ArticleController、PeopleController或ApplicationController的子级吗

或者也许一切都好,而我是偏执狂?)

UPD

所有MVC条件均得到严格满足。问题是:

在一个控制器中管理所有关系是否良好。不仅仅是添加/删除关系,有时还会创建一个新的关系,比如@article.authors.find\u或\u create\u by\u name(name)。视图中的关系不是简单的选择标记!它们是具有自己的搜索、排序和分页功能的完整表格

如果有人不理解我,让我们用不同的方式问:

如何创建“分包商”:如果我们有ArticleController及其编辑操作。ArticleController应仅管理项目模型中的字段。一批分包商应该管理关系

为什么我需要它?
让我们在这样的页面中添加一个AJAX:不会遇到严重的问题,但在每次AJAX调用ArticleController.update/edit操作中,都会执行查询和其他一些不必要的操作,例如为模型建立Arel关系,这些操作永远不会被使用。我喜欢将工作划分为独立的小部分,而不是构建一个可以做任何事情的大型控制器。

您的文章
控制器
不应该管理关系。这应该在您的
型号中。查看活动记录
回调
。您可以在回调中执行与管理作者、翻译等相关的所有操作。例如,在更新后的


您还希望使用
嵌套资源
。例如,您的
作者
嵌套在您的中,您的文章
控制器
不应该管理关系。这应该在您的
型号中。查看活动记录
回调
。您可以在回调中执行与管理作者、翻译等相关的所有操作。例如,在更新后的


您还希望使用
嵌套资源
。例如,您的
作者
嵌套在您的中。例如,您可以拥有一个将管理作者-文章关系的作者身份控制器。 不要忘记,您可以使用“连接”模型来处理所涉及的两个模型之间的关系。 你可以有这样的路线

edit_article_authorships GET /articles/:article_id/authorships/edit(.:format) {:controller=>"authorships", :action=>"edit"}

例如,也许您可以拥有一个Authorship控制器来管理作者-文章关系。 不要忘记,您可以使用“连接”模型来处理所涉及的两个模型之间的关系。 你可以有这样的路线

edit_article_authorships GET /articles/:article_id/authorships/edit(.:format) {:controller=>"authorships", :action=>"edit"}

当然,关系添加/删除在模型中。在控制器中,我只需执行@related_articles=@article.related_articles或@article.related_articles嵌套资源非常有用,当然关系添加/删除在模型中。在controller中,我只做@related_articles=@article.related_articles或@article.related_articles嵌套资源非常有用thx,我认为Authorship可以处理基于输入参数(article_id、post_id等)的author模型关系,我会试试它,我认为Authorship可以处理基于输入参数(article\u id、post\u id等)的author-model关系,我将尝试一下。