Как замаскировать URL рельсы - PullRequest
0 голосов
/ 28 мая 2018

Я новичок в Rails.здесь пытается заменить слово в URL.Мой routes.rb:

resources :senders, only: [:index, :update]
 get '/senders/:id', constraints: { :id => /[0-9]+/ }, to: 'senders#show'
 put '/senders/:id', constraints: { :id => /[0-9]+/ }, to: 'senders#update'
 get '/senders/:id/check_status/:ip_index', constraints: { :id => /[0-9]+/, :ip_index => /[0-3]/ }, to: 'senders#check_status'

Он отображается в URL-ссылке как

localhost:3000/senders

, но я хочу, чтобы он отображался как

localhost:3000/receivers

Что такоеизменения, которые я должен сделать, чтобы показать получателей / 173?

1 Ответ

0 голосов
/ 28 мая 2018

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

resources :receivers, only: [:index, :update], controller: 'senders'
 get '/receivers/:id', constraints: { :id => /[0-9]+/ }, to: 'senders#show'
 put '/receivers/:id', constraints: { :id => /[0-9]+/ }, to: 'senders#update'
 get '/receivers/:id/check_status/:ip_index', constraints: { :id => /[0-9]+/, :ip_index => /[0-3]/ }, to: 'senders#check_status'

Но вы также должны изменить имя вашего контроллера и сделать следующее:

Сначала измените имя вашего контроллера.
Переименуйте app/controllers/senders_controller.rb в app/controllers/receivers_controller.rb

и измените первую строку в контроллере:
SendersController < ApplicationController на ReceiversController < ApplicationController

Затем, наконец, измените config/routes.rbкак показано ниже:

resources :receivers, only: [:index, :update]
     get '/receivers/:id', constraints: { :id => /[0-9]+/ }, to: 'receivers#show'
     put '/receivers/:id', constraints: { :id => /[0-9]+/ }, to: 'receivers#update'
     get '/receivers/:id/check_status/:ip_index', constraints: { :id => /[0-9]+/, :ip_index => /[0-3]/ }, to: 'receivers#check_status'

Подробнее о маршрутизации Rails вы можете узнать из документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...