0

私はレール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

上記のものは機能しますが、URLを次のように変更したいと思います

以前は「apipath/blogs/tag/tag1」としていましたが、 「apipath/blogs?tag=tag1」としました。

だから私は行を変更しました

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

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

しかし、これは機能しません...提案してください。

4

2 に答える 2

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 に答える
0

括弧を使用してルートに条件を追加できます。

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