少し問題があります...ドイツのWebサイトにサービスを提供するRailsアプリケーションをセットアップしています。Rails の内部複数形機能を利用するために、すべてのモデルを英語のままにしました (例: モデル " JobDescription
")。ここで、" " を呼び出すと、これまでのhttp://mysite.com/job_descriptions/
すべての情報が得られます。job_descriptions
私は URL に英語の用語 " " を入れたくなかったのでjob_descriptions
、routes.rb に以下を入れました。
map.german_term '/german_term', :controller => 'job_descriptions', :action => 'index'
map.german_term '/german_term/:id', :controller => 'job_descriptions', :action => 'show'
http://mysite.com/german_term/
" " または " "を呼び出すとhttp://mysite.com/german_term/283
、すべての が取得job_descriptions
されます。これで問題ありません。
ただし、URL をより SEO フレンドリーにするために、ID を URL 内のよりユーザーフレンドリーなスラッグに交換したいと考えています。したがって、私は以下を my に入れましたjob_description.rb
:
def to_param
"#{id}-#{name.gsub(/[^a-z0-9]+/i, '-')}"
end
job_description_path
どのlink_to
メソッドでも" " を使用すると、URL が " http://mysite/job_descriptions/13-my-job-description-title " のようにレンダリングされます。
しかし、これが私が立ち往生しているところです。「http://mysite/german_term/13-my-job-description-title
」を取得したいと思います。job_description_path
link_to コードで" " を " " に置き換えようとしましたgerman_term_path
が、" " しか生成されませんhttp://mysite/german_term/13
。当然、to_param
呼ばれません。私が見つけた 1 つの回避策は、次のリンクを作成することです。
<%= link_to job_description.name, german_term_path(job_description.to_param) %>
link_to
しかし、コード内のすべての呼び出しを変更するのはかなり面倒です。私が望むのは、URL に出現するたびにjob_description
" " を " "に置き換えることです。german_term
何かご意見は?!?
よろしく、
セバスチャン