Невидимый префикс маршрутов Rails

Привет, мой префикс в маршрутах рельсов невидим.

Вот мой файл route.rb

Rails.application.routes.draw do

  get '/gossip/:id', to: 'gossip#show'
  get '/welcome/:user_entry', to: 'welcome#personnal'
  root 'home#show'
  get '/team', to: 'team#show'
  get '/contact', to: 'contact#show'
 end

И когда я запускаю маршруты рельсов в терминале, я вижу, что:

Prefix Verb URI Pattern                                                                              Controller#Action
                          GET  /gossip/:id(.:format)                                                                    gossip#show
                          GET  /welcome/:user_entry(.:format)                                                           welcome#personnal
                     root GET  /                                                                                        home#show
                     team GET  /team(.:format)                                                                          team#show
                  contact GET  /contact(.:format)                                                                       contact#show
       rails_service_blob GET  /rails/active_storage/blobs/:signed_id/*filename(.:format)                               active_storage/blobs#show
rails_blob_representation GET  /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
       rails_disk_service GET  /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
update_rails_disk_service PUT  /rails/active_storage/disk/:encoded_token(.:format)                                      active_storage/disk#update
     rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format)                                           active_storage/direct_uploads#create

Если я удалю : перед id, я увижу префикс, но мои маршруты больше не будут динамическими. Какие-нибудь советы? Благодарность


person ffouquet42    schedule 20.02.2020    source источник
comment
Что вы имеете в виду, что ваш префикс невидим? Какая строка отличается от того, что вы ожидаете? Что именно вы ожидаете?   -  person jvillian    schedule 21.02.2020
comment
Мне нужен префикс, чтобы использовать его в <%= link_to "click here", prefix_path %> ?   -  person ffouquet42    schedule 21.02.2020
comment
Ты собираешься только show и gossip? Как насчет new, create и т. д.?   -  person jvillian    schedule 21.02.2020
comment
На данный момент у меня просто есть сплетни в базе данных, я отображаю все заголовки на странице, и мне нужна одна страница на сплетни с содержанием.   -  person ffouquet42    schedule 21.02.2020


Ответы (1)


Вы можете сделать маршрут названным, добавив as: :some_route_name:

get '/gossip/:id', to: 'gossip#show', as: :gossip

или используйте:

resources :gossip, only: [:show]
person Vasfed    schedule 21.02.2020
comment
Я пытаюсь, но использовать <%= link_to "click here", gossip_path(@id) %> я не могу его использовать, и я действительно не понимаю, как сделать динамическую ссылку, может быть - person ffouquet42; 21.02.2020
comment
@FFouquet42 попробуйте с resources, также убедитесь, что @id не nil - person Vasfed; 21.02.2020
comment
где использовать resources в оболочке? в коде? Я не знаю, что это такое и как это работает - person ffouquet42; 21.02.2020
comment
@FFouquet42 в маршрутах (см. обновленный ответ), больше в руководствах. rubyonrails.org/ - person Vasfed; 21.02.2020