Rails アプリにバニティ URL システムを実装しようとしています。localhost:3000 サーバーでは、実装は完全に機能していました。名前でレシピをリクエストできるシステムがありましたが、ID でリクエストされた場合はデフォルトの動作にフォールバックすることもできました。この実装は、名前が実際に保存されたものに関係なく、大文字と小文字の名前に対して正常に機能しました。
例えば
http://localhost:3000/recipes/pizza
と
http://localhost:3000/recipes/Pizza
レコードが「Pizza」として保存されていても、同じページにつながります。
一方:
http://www.test-server.com/recipes/pizza
と
http://www.test-server.com/recipes/Pizza
同じページは表示されません。
私の質問は、ローカルホスト サーバーで大文字が無視されるのはなぜですか。また、オンライン実装のためにこの問題をうまく処理する方法はありますか?
これは、現時点でバニティ URL を実装する方法に関連するコードです。
#models/recipe.rb
def to_param
name.parameterize
end
# relevant code from routes.rb
match '/recipes/:name' => 'recipes#show'
# relevant code from controllers/recipe_controller.rb
def show
name = params[:id].gsub("-", "\s")
@recipe = Recipe.find_by_name(name)
@recipe = Recipe.find(params[:id]) if @recipe.nil?
puts @recipe.ingredients.inspect
puts @recipe.amounts.inspect
respond_to do |format|
format.html # show.html.erb
format.json { render json: @recipe }
end
end
どんな洞察も大歓迎です。