0

IDに加えて、URLでレコード属性を使用するようにレールを説得するにはどうすればよいですか?

たとえばPublication、属性を持つクラスを考えてみpub_dateましょう。次のようなURLがあると便利です。

 /publications/#{pub_date.year}/#{id}

「id」の部分を変更するために使用できますto_paramが、「/」を含むパラメータを生成するのは悪い考えだということを覚えているようです。だから

def to_param
  "#{pub_data.year}/#{super}"
end

実行不可能のようです。また、他のURLテンプレートでは不可能に思えます。たとえば、URLの別の部分で属性を使用したい場合は、次のようになります。

 /#{pub_date.year}/publications/#{id}

一致するルートを定義できます。

  match "/xxx/:foo/:bar" => "ctrlr#act"

_urlしかし、自動生成されるヘルパーと_pathヘルパーをどのように使用できるかわかりません。

4

1 に答える 1

0

: をオプションとして使用できます

get "/xxx/:foo/:bar" => "ctrlr#act", :as => :xxx

その後

xxx_path(:foo => 'asd', :bar => 'qwe') # "/xxx/asd/qwe"
于 2012-08-15T11:03:42.670 に答える