加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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实例方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读