首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何正确地指向管理艺术家链接?

我如何正确地指向管理艺术家链接?
EN

Stack Overflow用户
提问于 2013-01-03 13:06:13
回答 1查看 31关注 0票数 0

我希望我的艺术家链接看起来像这样:

代码语言:javascript
复制
http://admin.foobar.com/artists/123
http://www.foobar.com/123

我的Routes设置如下所示:

代码语言:javascript
复制
class AdminSubDomain
  def matches?(request)
    whitelists = IpPermission.whitelists

    if whitelists.map { |whitelist| whitelist.ip }.include? request.remote_ip
      request.subdomain == 'admin'
    else
      raise ActionController::RoutingError.new('Not Found')
    end
  end
end

Foobar::Application.routes.draw do
  constraints AdminSubDomain.new do
    ..
    resources :artists, :only => [:index, :show], :controller => 'admin/artists'
  end

  get ':id' => 'artists#show', :as => 'artist' do
    ..
  end
end

Rake routes返回:

代码语言:javascript
复制
artist GET    /artists/:id(.:format)        admin/artists#show
artist GET    /:id(.:format)                artists#show

目前,<%= link_to 'Show', artist_path(artist, :subdomain => :admin) %>指向:http://admin.foobar.dev:3000/123

它应该看起来像:http://admin.foobar.dev:3000/artists/123

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-03 13:18:46

您为两个路由使用了相同的名称(artist),因此当您调用artist_path时,您将获得您定义的最后一个路由,即:get ':id' = 'artists#show', :as => 'artist' do ...

使用管理路由的不同名称来区分它:

代码语言:javascript
复制
constraints AdminSubDomain.new do
  ..
  resources :artists, :only => [:index, :show], :controller => 'admin/artists', :as => 'admin_artists'
end

然后你可以用:<%= link_to 'Show', admin_artist_path(artist, :subdomain => :admin) %>来调用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14133350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档