1

Я хочу создать действие в контроллере Rails, который что-то делает в db, а затем просто обновляет текущую страницу.Действие, которое обновляет текущую страницу

Пример:
Контроллер: а
просмотров: A, B.

контроллер А представляет собой следующее:

def action1 
    somethingToTheDB 
end 

вид А представляет собой следующее:

-html- 
-body--link to action 1--/body- 
-/html- 

вид B приведено ниже:

-html- 
-body--link to action 1--/body- 
-/html- 

Если я пришел к действию 1 из вида AI хочу обновить представление A, если я пришел из представления 2 Я хочу обновить представление 2. Возможно ли это, не передавая параметр в ссылке, чтобы указать вид, который должен быть оказана?

Благодаря

+0

Я не следую , Возможно, было бы полезно представить больше фактического кода, если он существует. То, как вы представили вопрос, я ожидаю увидеть представление 'action1.html.haml' или подобное, а не' A' и 'B'. – toddsundsted

ответ

6

Не уверен, что поймать ваш вопрос, но вы не можете просто сделать:

def action_1 
    # something_to_the_db 
    redirect_to :back 
end 

Если вам необходимо получить доступ к controller_name и action_name в вашем action_1 по какой-либо причине:

<%= link_to 'Refresh' refresh_path(:aktion => action_name, 
            :kontroller => controller_name) %> 

aktion и kontroller не опечатываются. Вы должны написать их так, иначе он столкнется.

action_name и controller_name являются переменными. Напишите их так.

Это будет выглядеть как-то вроде этого (в зависимости от того, что ваш refresh_path, ваш текущий контроллер и текущее действие):

<a href="/refresh?aktion=index&kontroller=articles">Refresh</a> 

Тогда в контроллере:

def action_1 
    kontroller = params[:kontroller] 
    aktion  = params[:aktion] 
    # Do whatever you want in the db 
    redirect_to :controller => kontroller, :action => aktion 
    # or redirect_to :back (better IMO) 
end 
+0

Действительно, просто «redirect_to: back» вернется к рефереру. – nathanvda

+0

@nathanvda Это то, что я изначально думал, но, возможно, ему нужно сделать что-то конкретное в db на основе реферера ... Но опять-таки «redirect_to: back» выполнит начальный запрос так ... Не уверен, чтобы понять его вопрос, ожидая реакции от него;) – Damien

+0

Мне нужно получить доступ к моему контроллеру и действию, поэтому я думаю, что это ответ. – Tony

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