Как переместить / преобразовать метод, который определен в нашем контроллере, в его собственный маршрут отдыха - PullRequest
0 голосов
/ 19 мая 2019

я просто хочу знать, как я могу переместить свой метод из запроса get на определенный контроллер, где я могу определить его и использовать в ресурсах как маршрут отдыха, Например: у меня есть ресурсы как:

resources: send_sms
get :new_sms to, send_sms#new_sms

Я хочу, чтобы этот метод new_sms также использовался в моих ресурсах. не хочу использовать получить дополнительно.

Мои маршруты.рб

resources :send_sms, only: %i[index create]
get :new_sms, to: 'send_sms#new_sms'

здесь я хочу переместить мои new_sms к ресурсам, которые не хотят использовать это .. get :new_sms, to: send_sms#new_sms

Мой send_sms_controller.rb

class Admin::SendSmsController < AdminController
  before_action :authenticate_admin!
  before_action :user, only: %i[show edit new_sms kits_status]
  before_action :users, only: :index

  def show; end

  def index
    @users = users.search_by(params[:query]&.downcase)
  end

   #def new_sms; end


   def create

      client = Twilio::Client.new
      message = { to: user.phone_number,
                  body: params[:message] }
      client.send_message(message)
      redirect_to admin_users_path

   end
##################################################
my 
new_sms.slim
h2

  ="Send sms to #{@user.email}"
= simple_form_for(@user, url: admin_user_send_sms_path(@user), method: :post) do |f|
  section
  .form-inputs.column
    = text_area_tag 'message',nil, placeholder: 'write message here ...', size: "35x10"

  div#buttons
    =f.submit 'Send', class: 'btn btn-success'
    =link_to 'Cancel', admin_users_path, class: 'btn btn-danger'

1 Ответ

1 голос
/ 19 мая 2019

Вы можете определить участник маршруты в вашем ресурсе

resources :send_sms, only: %i[index create] do
  member do
    get :new_sms 
  end
end

Это создаст участник route get '/send_sms/:id/new_sms', to: 'send_sms#new_sms'

Также вы можетеопределить коллекция маршруты в вашем ресурсе

resources :send_sms, only: %i[index create] do
  collection do
    get :new_sms 
  end
end

Это создаст коллекцию маршрут get '/send_sms/new_sms', to: 'send_sms#new_sms'

...