ruby-on-rails - 在 Rails 3 路由中重命名路径助手

标签 ruby-on-rails ruby ruby-on-rails-3 routing

我有一个项目 Controller /模型。我没有在#index 页面上列出项目,而是显示了一个下拉列表,它提交给 projects#select,它找到了正确的项目(我确保每个选项组合只能有 1 个)并转发用户访问该项目的#show 页面。

所以对于我的路线,我这样做......

resources :projects, :only => [:index, :show] do
  collection do
    get 'select'
  end
end

这很好,但是#select 的辅助方法是“select_projects”,这是可以理解的,但在我的例子中我真的想要“select_project”。而且我真的不想在另一个文件中使用别名。没问题我可以使用 :as...

resources :projects, :only => [:index, :show] do
  collection do
    get 'select', :as => 'select_project'
  end
end

但现在我的助手是“select_project_projects”。所以我作弊了一点(仍然比在另一个文件中使用别名要好)...

resources :projects, :only => [:index, :show]
match '/projects/select', :to => 'projects#select', :as => 'select_project'

这看起来可能有效,但实际上无效,因为/project/select 实际上匹配“project#show”的路由。更改行的顺序就可以了。

match '/projects/select', :to => 'projects#select', :as => 'select_project'
resources :projects, :only => [:index, :show]

但是有没有更优雅的处理方式呢?我意识到这是边缘 OCD,但我希望能够完全控制资源 block 中的路由名称。

最佳答案

用资源代替资源

关于ruby-on-rails - 在 Rails 3 路由中重命名路径助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221182/

相关文章:

ruby-on-rails - 我的发现者疯了。 (。发现返回错误的类?)

ruby-on-rails - ActiveRecord::Base.connected?即使 DB 关闭也返回 true

ruby-on-rails - Rails 4 - 连接查询匹配数组中的所有内容

ruby - 从多个 select_list 元素中选择

ruby - Ruby 中绑定(bind)/解除绑定(bind)方法的目的是什么?

ruby-on-rails-3 - Heroku + Rails + PostgreSQL 问题

ruby-on-rails - Rails 中的 RSpec 测试和 304 HTTP 状态码

ruby-on-rails - 如何写得更简洁呢?

ruby-on-rails - 带有 chargify 的 cucumber 功能示例

ruby-on-rails-3 - 不同型号条件下的范围