0

SO に関する質問には、次の URL 構造があります。

http://stackoverflow.com/questions/18474799/changing-the-input-value-in-html5-datalist

番号セクションが ID であると仮定すると、最初の 2 つのセクション (ドメイン拡張後) は、routes.rb で以下を使用するだけで取得されます。

resources :questions

質問は ID によって既に識別されています。新しいリンク ヘルパー (および追加のパラメーターを含む) を使用する必要がありますか、それとも 3 セクションの URL を別の場所で解決できますか?

アップデート:

この質問をルート処理に集中させるために、(作成時に) オブジェクトに属性として保存されたスラッグが既にあると仮定しましょう。@question.slug

routes.rbすべてのビューで長いリンク ヘルパーを記述する代わりに、コントローラー内の or/and 内のルールがオプションのスラッグを有効にして処理できれば、本当に有利です。

4

3 に答える 3

0

to_paramメソッドを使用して「フレンドリ ID」を作成できる場合があります。

このようなもの:

class Question < ActiveRecord::Base
  def to_param
    [id, name.parameterize].join("/")
  end
end

この要点の詳細

于 2013-08-28T15:36:22.977 に答える
0

その方法で GET リクエストを処理したい場合は、簡単に実行できます。

get '/questions/:id/:title' => 'questions#show',  as: :question_with_title
resources :questions

このようにして、タイトルの有無にかかわらず、着信 URL を処理できます (StackOverflow と同じように -- 試してみてください!)。次のような方法で URL を動的に作成できます。

question_with_title_path(@question.id, @question.title.to_s.downcase.gsub(/ /, '-')
# probably will want to use a method for processing titles into url-friendly format

詳細はhttp://guides.rubyonrails.org/routing.html#static-segmentsを参照

于 2013-08-28T15:32:22.523 に答える