0

私はこれが私が見ていない本当に単純なことであることを願っています. 私はレールにかなり慣れていないので、これは私の目の前にあると思います。

私のアプリにはあなたが呼ぶものがstacksあり、そのためのリソースを作成しました:

resources :stacks, only: [:new, :create, :show]

/stacks/:idshow アクションのルートを からに変更したい/stack/:id

これをリソースの上に追加しましたが、機能していませんでした:

get '/stacks/:id', to: 'stacks#show', as: 'stack'

ありがとう!

編集:コード

get '/stacks/:id', to: 'stacks#show', as: 'stack'
resources :stacks, only: [:new, :create, :show]
4

1 に答える 1

1

Ruby on Rails は、ルーティングやデータベース テーブル名などの目的で、デフォルトでリソース名を複数形にしますが、この動作の特定のケースをオーバーライドできます。

Ruby on Rails アプリケーション フォルダーに移動します (ここでは、単に '.app' と呼びます)。エディターで .app/config/initializers/inflections.rb を開くと、次のように表示されます (Rails 4)。

# Be sure to restart your server when you modify this file.

# Add new inflection rules using the following format. Inflections
# are locale specific, and you may define rules for as many different
# locales as you wish. All of these examples are active by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
#   inflect.plural /^(ox)$/i, '\1en'
#   inflect.singular /^(ox)en/i, '\1'
#   inflect.irregular 'person', 'people'
#   inflect.uncountable %w( fish sheep )
# end

# These inflection rules are supported but not enabled by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
#   inflect.acronym 'RESTful'
# end

次のように、「スタック」が「スタック」の複数形になるようにインフレクターを追加します。

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'stack', 'stack'
end

これでうまくいくはずです。

于 2013-11-15T08:19:30.673 に答える