0

我在 routes.rb:resources :tags中有一个标签资源,还有一个标签链接代码片段:get 'tags/:tag', to: 'users#index', as: :tag

标记链接代码片段允许我单击标记链接并被路由到用户索引页面,其中包含已被标记为该标记的所有用户的列表。该链接的形式为http://localhost:3000/tags/{tag_name}

不幸的是,这两个想法发生了冲突,因为当我尝试通过标签资源添加新标签时,生成的链接是http://localhost:3000/tags/new. 这会导致歧义,因为“新”可以是动作或标签名称。

我是一个rails初学者,关于如何解决这个问题的任何想法?我使用的大部分代码来自 railscast http://railscasts.com/episodes/382-tagging?view=asciicast

4

2 回答 2

1

在你的用户控制器中试试这个

def index
  @users = User.all
  @users = @users.where(tag: params[:tag]) if params[:tag]
end

你的网址

http://localhost:3000/users?tag=your_tag

你的看法

link_to 'Your tag', "#{users_path}?tag=your_tag"
于 2013-08-23T11:24:40.223 回答
0

您可以尝试 FriendlyId gem ( https://github.com/norman/friendly_id ) 并使用 show 操作重定向到用户控制器。

于 2013-08-23T11:18:26.500 回答