2014-12-07 6 views
1

Я новичок в мире рубинов на рельсах и пытаюсь выяснить, как работает маршрутизация. Я прочитал несколько статей об этом, но мне что-то неясно.
Если у меня есть страница, с формой отправителя сообщения и попытайтесь отправить данные по почте, я должен установить маршрут SG, как это:
Ruby on rails post request routing

post '/send', to: 'message#send' 

с этим он отлично работает. Но что, если у меня есть другая страница с другой формой, и я хочу связать ее с другим контроллером/действием (почтовый запрос тоже). Как это может сделать различие между двумя сообщениями?

+0

Просто отправьте его на другую конечную точку/маршрут. Маршруты существуют как способ сопоставления uri с контроллером/действием. Поэтому просто создайте еще один маршрут к действию, в котором вы нуждаетесь. – Doon

ответ

0

Вы можете передать некоторые специальные параметры и проверить его значение в контроллере, например:

class MessageController < ApplicationController 
    def send 
    if params[:kind] == 'some_value' 
     do_one_thing 
    else 
     do_anoter_thing 
    end 
    end 
end 

Но в этом случае ваше действие будет жир и некрасиво. Таким образом, я предлагаю вам естественным образом создать новое действие и разделить логику:

post '/my_send_from_one_place', to: 'message#my_send_from_one_place' 
post '/my_send_from_secong_place', to: 'message#my_send_from_secong_place' 
+0

Спасибо за ваш ответ. Теперь почти ясно, еще один вопрос, первый параметр '/ my_send_from_second_place' - это путь к форме? – Bakayaro

Смежные вопросы