如何路由用户配置文件 URL 以跳过控制器?

2024-03-26

现在我的用户个人资料 URL 如下所示:

http://example.com/users/joeschmoe http://example.com/users/joeschmoe

这表明show用户控制器中的方法。

我理想的做法是提供这样的用户个人资料 URL:

http://example.com/joeschmoe http://example.com/joeschmoe

那么,需要什么样的路线和控制器魔法才能实现这一目标呢?


我不同意jcm对此的说法。这根本不是一个糟糕的想法,两个最大的社交网络 Facebook 和 MySpace 都在生产中使用了它。

匹配的路线http://example.com/username看起来像这样:

map.connect ':username', :controller => 'users', :action => 'show'

如果您想进入子域路由并将配置文件映射到类似的 URLhttp://username.example.com/,我建议使用 SubdomainFu 插件,生成的路线如下所示:

map.root :controller => 'users', :action => 'show' , :conditions => {:subdomain => /.+/}

这些广泛的、包罗万象的路由应该在routes.rb中最后定义,以便它们具有最低的优先级,并且更具体的路由将首先匹配。

我还建议在您的用户模型中使用验证,以消除用户选择与当前和未来路由冲突的用户名的可能性:

class User < ActiveRecord::Base
  validates_exclusion_of :username, :in => %w( messages posts blog forum admin profile )
  …
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何路由用户配置文件 URL 以跳过控制器? 的相关文章

  • “PG DuplicateTable:错误关系“产品”已存在”- Heroku db:迁移尝试

    Rails 菜鸟尝试将 DB 迁移到 Heroku 请原谅这个错误消息的多汁性 但我认为将其全部包含在内可能很重要 我不知道为什么会发生这种情况 也不知道这意味着什么 我的架构中只有一张产品表和一张创建产品迁移表 Migrating to
  • 黄瓜和 Rspec

    任何人都可以向我推荐黄瓜和 rspec 教程 rails 3 的好来源 简单示例 吗 Edit 实际上我正在寻找带有很好示例的免费在线资源 我觉得R规格书 http www pragprog com titles achbd the rsp
  • 使用 sidekiq 只执行众多重复作业之一?

    我有一个后台作业 在 MongoDB 上执行映射 归约作业 当用户向文档发送更多数据时 它会启动在文档上运行的后台作业 如果用户发送多个请求 它将启动同一文档的多个后台作业 但实际上只有一个需要运行 有没有办法可以防止多个重复实例 我正在考
  • Ruby IMAP IDLE 并发 - 如何解决?

    我正在尝试构建一个 目前是私有的 Web 应用程序 该应用程序将利用 IMAP IDLE 连接在人们到达时显示电子邮件 我很难弄清楚如何将其组合在一起 以及它如何与我的 Heroku RoR 服务器结合在一起 我编写了一个用于连接到 IMA
  • 机架 1.3.2 的问题。您已经激活了机架 1.3.2,但您的 Gemfile 需要机架 1.2.3

    我在 Debian 上有 Passenger 3 0 9 带有 Gem Rack 1 3 2 和 1 2 1 使用带有乘客 e 捆绑器的 Rails 3 0 应用程序 我遇到以下错误 您已经激活了机架 1 3 2 但您的 Gemfile 需
  • Capistrano 杀死资产:预编译

    我正在尝试部署我的应用程序 但我不断收到 err xxx xxx xx xxx bash line 1 9953 Killed bundle exec rake RAILS ENV production RAILS GROUPS asset
  • Bundler 似乎无法通过 Rbenv 找到正确的 Ruby

    多年来我一直使用 RVM 作为 Ruby 版本管理器 但由于其简单性 我想改用 rbenv 但是我在部署时发现了一些奇怪的问题 这似乎是错误的地方 env RBENV ROOT home deploy rbenv PATH home dep
  • Paperclip 会自动清理文件名吗?

    我正在使用 Thoughtbot回形针宝石 https github com thoughtbot paperclip处理文件上传 我发现当我上传文件名中包含空格的文件时 它会用下划线替换空格来存储 那挺好的 我还尝试上传带有特殊字符的文件
  • 覆盖 Rails ActiveRecord 销毁行为的最佳方法是什么?

    我有一个应用程序 我想在其中覆盖许多模型的销毁行为 用例是用户可能有删除特定记录的合法需要 但实际上从数据库中删除该行会破坏引用完整性 从而影响其他相关模型 例如 系统的用户可能想要删除不再与其有业务往来的客户 但需要维护与该客户的交易 看
  • env 配置文件中未初始化的常量 ActiveSupport::EventedFileUpdateChecker

    我是 Ruby on Rails 的新手 运行 捆绑 命令进行更新 安装后 当我尝试执行以下操作时rails s or rails g mongoid config控制台返回以下消息开头 home myUser proyect config
  • Rails 3 公司帐户具有许多用户,限制对数据的访问

    我想知道在我的应用程序中构建身份验证 授权的最佳方法 我希望有 许多公司帐户 可能使用子域 帐户有很多用户 用户只能访问自己或具有相同帐户的其他用户创建的记录 我所做的研究提供了许多混合搭配的想法 以奇怪而美妙的方式组合 devise ca
  • Rails 建模:将 HABTM 转换为 has_many :through

    我正在现有的 Rails 站点上进行维护工作 并且遇到了一些由多对多关联引起的问题 看起来该网站最初是使用has and belongs to many对于一些业务逻辑变得更加复杂的关系 所以我需要使用has many through而是支
  • Node.js 解析路由的最小函数

    我有一个 Node js Express 应用程序正在运行 它接收如下路由 app get resource res someFunction app get foo bar id someOtherFunction 这很棒并且工作正常 我
  • Rails_admin 中的范围作为过滤器

    我在我的应用程序中使用rails admin 我的模型上有一些范围 以下是一个示例 class User lt ActiveRecord Base scope unconfirmed where confirmed at IS NULL e
  • 如何使用 ActiveAdmin 创建 STI 子类的对象

    给出以下设置 当前不起作用 class Employee lt ActiveRecord Base end class Manager lt Employee end ActiveAdmin register Employee do for
  • application.css 未作为资产提供

    编辑4 5和6 8小时后 欢迎任何更多的想法 也许这个错误已经被知道并解决了 但是当你在 app assets stylesheets 的 css erb 文件中有这个时 我得到了我在编辑 2 3 中描述的行为 li background
  • 如何按值降序对哈希进行排序并在 ruby​​ 中输出哈希?

    output sort by k v v reverse 和钥匙 h a gt 1 c gt 3 b gt 2 d gt 4 gt a gt 1 c gt 3 b gt 2 d gt 4 Hash h sort 现在我有这两个 但我试图按值
  • 具有多个可选参数的 Rails 3 路线

    我正在尝试创建一个具有可选参数和不同顺序的 Rails 路线 这个问题描述了一个类似的问题 具有多个 可选且漂亮参数的路由 https stackoverflow com questions 14007593 routes with mul
  • 使用 RSpec 请求规范授权请求时,access_token 无效

    我正在尝试测试CredentialsController 使用 RSpec 请求规范在生产中运行良好 Code 控制器 class CredentialsController lt ApplicationController before
  • 仅适用于安全页面的安全回形针 URL

    我正在尝试找到使回形针网址安全的最佳方法 但仅限于安全页面 例如 显示存储在 S3 中的图像的主页是http mydomain com http mydomain com图像网址是http s3 amazonaws com mydomain

随机推荐

  • 如何为 iOS 和 macOS 编译 libffi?

    我正在尝试使用libffi https github com atgreen libffi在我的一个项目中 但我似乎无法为 iOS 或 macOS 就此而言 进行编译 以下是我在构建 iOS 模拟器时遇到的各种错误之一 bash src a
  • Python 3 async for 循环中的类型错误

    我正在学习 Python 相对较新的异步功能 我发现这个在PEP 492 https www python org dev peps pep 0492 example 2 以下是一个实用程序类 它将常规迭代转换为 异步的 虽然这不是一件非常
  • 尝试运行不和谐机器人时出错(python)

    File dban py line 1 in
  • 更改消息名称

    这是我的 WSDL 的一部分 我正在使用代码优先的方法
  • 检查产品变体是否在 Woocommerce 的购物车中

    我正在尝试显示产品的变体是否已在购物车中 在单个产品页面中 产品 ID 与购物车对象中的产品的简单比较不适用于可变产品 因为变体 ID 是使用 ajax 加载的 这是我的代码 适用于产品类型不是变量的情况
  • Python“decimal”包给出错误的结果

    我尝试通过设置来计算以下内容getcontext prec 800 gt gt gt from decimal import gt gt gt getcontext prec 800 gt gt gt Decimal 22 0 Decima
  • 使用jquery和参数调用WCF服务

    好吧 这是这些基本问题之一 但我现在已经用谷歌搜索和调试了两个小时 但错误没有消失 简单场景 WCF 服务 其方法带有我想通过 jquery 调用的参数 我可以调用不带参数的方法 但是使用参数时 调用永远不会到达 NET 中的断点 服务器代
  • 执行 .bat 文件时启用按钮

    我有一个带有打开按钮和后退按钮的表单 我通过打开按钮打开批处理文件 在执行批处理文件时 其他按钮被禁用 我想启用这些按钮 请帮我 运行批处理文件代码 private void openActionPerformed java awt eve
  • NotificationCompat.Builder 缺少 build() 方法

    我想做的正是他所做的 Android 时间通知 https stackoverflow com questions 17053996 android notification at time但在我的 AlarmReceiver 类中 出现错
  • HttpInterceptor 根据其他可观察值的值更改响应主体

    有些我似乎无法根据另一个可观察值的值来更改响应主体 而我只能在检索响应后才能获得该值 更改请求非常简单 我不知道如何处理响应 Injectable export class MyHttpInterceptor implements Http
  • Spark MLlib:为每个数据组构建分类器

    我已经标记了向量 LabeledPoint staged 由一些组号组成 对于每个组 我需要创建独立逻辑回归分类器 import org apache log4j Level Logger import org apache spark m
  • 我将如何评估某个公式?

    我有一个多维数组列表 我向用户询问一个公式 然后我对其进行评估 问题是我得到这样的用户输入 a1 a2 12 a3 问题是 a1 a2 和 a3 指的是列 我必须将其评估为一定的值 我完全不知道如何解决这个问题 任何建议或指导都会很棒 此外
  • Python Spyder 选择显示绘图的位置和时间

    我在 Windows 10 中使用 Spyder3 1 2 IDE 和 Python 3 5 想知道如何选择是在 iPython 控制台还是在单独的窗口中显示我的绘图 我找到了这个其他问题 https stackoverflow com q
  • iOS 11 - 使用大标题模式时的 UINavigationItem titleView

    我试图理解这是一个错误还是预期的行为 On iOS 10之前我们可以设置一个自定义标题 使用navigationItem titleView On iOS 11 当设置我们的navigationItem largeTitleDisplayM
  • 如何测试无损双精度/整数转换?

    我有一个 double 和一个 int64 t 我想知道它们是否具有完全相同的值 以及将一种类型转换为另一种类型是否不会丢失任何信息 我当前的实现如下 int int64EqualsDouble int64 t i double d ret
  • 为什么我不能对 void 指针的强制转换进行算术运算?

    void foo void ptr int numBytes char ptr numBytes 这不能在 C 中编译 我知道替代方案 但为什么这不起作用呢 问题是什么 问题 问题是 char ptr不会产生lvalue 这意味着该值无法修
  • 如何将百分比变量格式化为小数点后两位?

    该程序基本上处理文本文件 读取数据并执行功能 while s hasNext name s next mark s nextDouble double percent mark tm 100 System out println Stude
  • android中如何区分480X800和480X854屏幕?

    如何区分 480X800 和 480X854 屏幕 我们可以选择将一张图像放在 hdpi 文件夹中 在我的情况下 480X800 图像不支持 480X854 图像 它在底部显示一个空白区域 有什么想法吗 编辑 我将图像设置为背景 在我的布局
  • wordpress 插件 -> 调用未定义函数 wp_get_current_user()

    我正在尝试使用函数 wp get current user 获取插件中的当前用户信息 但我越来越Call to undefined function wp get current user 显然发生这种情况是因为文件 wp includes
  • 如何路由用户配置文件 URL 以跳过控制器?

    现在我的用户个人资料 URL 如下所示 http example com users joeschmoe http example com users joeschmoe 这表明show用户控制器中的方法 我理想的做法是提供这样的用户个人资