0

我在 Rails 3 工作

我有一个疑问,我有一种方法可以根据标签获取项目

喜欢

resources "blogs" do
  get '/tag', '/tag/:name' do
    authenticate!
    tag_name = params[:name].to_s || ""
    # query to fetch from items based on its tag associated
  end
end

以上一个有效,现在我想更改网址

“apipath/blogs?tag=tag1” 而不是我之前所做的“apipath/blogs/tag/tag1”

所以我修改了这条线

  get '/tag', '/tag/:name' do
 ###
  end

get '?tag', '?tag=:name' do
end

但这不起作用...请提出建议。

4

2 回答 2

0

您可以在带有括号的路由中添加条件:

get '/tag(/:name)' do
   # params[:name] will contain the tag name
end
于 2013-02-13T18:50:12.283 回答
0

对我来说,这可以工作:

resources "blogs" do
  get '/tag' do
    authenticate!
    tag_name = params[:tag].to_s || ""
    # query to fetch from items based on its tag associated
  end
end

您不需要在路由中定义传递的参数?不是由路由器解释的。

于 2012-02-17T08:59:18.780 回答