Действие, которое обновляет текущую страницу - PullRequest
2 голосов
/ 23 декабря 2011

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

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

контроллер A имеет следующий вид:

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. Возможно ли это без передачи в ссылку параметра, указывающего представление, которое должно быть отображено?

Спасибо

1 Ответ

7 голосов
/ 23 декабря 2011

Не обязательно ответить на ваш вопрос, но вы не можете просто сделать:

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
...