ruby-on-rails – 多个控制器中方法的Rails约定
发布时间:2020-12-17 02:31:02 所属栏目:百科 来源:网络整理
导读:我有一个应用程序,其用户的个人资料可通过site.com/username访问.在选择用户名时,我对我的UsersController中的方法进行 AJAX调用,以确保用户名可用(并在提交时检查后端).我现在想要添加也可以通过site.com/groupname访问的组.由于组和用户名不能冲突,因此响
我有一个应用程序,其用户的个人资料可通过site.com/username访问.在选择用户名时,我对我的UsersController中的方法进行
AJAX调用,以确保用户名可用(并在提交时检查后端).我现在想要添加也可以通过site.com/groupname访问的组.由于组和用户名不能冲突,因此响应AJAX调用的任何控制器方法都需要同时检查两者,因此check_username_available和check_groupname_available方法将执行完全相同的操作.最好的做法/ Rails方法是什么,因为我不想在UsersController和GroupsController中复制代码?
为每个控制器设置一个方法似乎有点多余,即使将功能拉出到帮助器,因为仍然会有两条路由执行相同的操作.有一个单独的控制器也解决了这个问题,但不确定这是不错的Rails实践. 解决方法
重用的代码可以通过模块共享
class UsersController < ActionController::Base include NameUniqueness end class GroupsController < ActionController::Base include NameUniqueness end module NameUniqueness protected def check_name # implementation here end end 两个控制器现在都可以访问check_name实例方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |