UJS - куда мне положить js.erb? - PullRequest
       28

UJS - куда мне положить js.erb?

0 голосов
/ 06 февраля 2012

Мои статьи могут появляться на нескольких сайтах, а также модель статьи с названием, телом и т. Д. И моделью сайта с site_id, site_name и т. Д. У меня есть модель article_site_permission, с article_id, site_id и visible, которая может бытьлибо true, либо false.

На моей странице редактирования статьи я сделал button_to:

<%= button_to 'Hide', article_site_permission_path(:id => @article_site_permission_id, :article_site_permission => {:visible => "false"}), :method => :put %>

Это работает - оно меняет разрешение на false.И я могу показать кнопку Показать, которая делает обратное.

Теперь я хочу обновить div, в котором есть кнопка, добавив :remote => true к ссылке на кнопку.Но где я могу разместить свой javascript?

Он находится в представлении article_site_permission - даже если я смотрю на само представление статьи?Это называется update.js.erb?

Спасибо за вашу помощь.


Обновление для ясности.

Моя кнопка находится на странице статей / редактирования.Кнопка обновляет article_site_permissions.Я хочу вернуться к article / edit и обновить div, в котором есть кнопка.

Я должен отредактировать контроллер обновлений для article_site_permissions, но куда мне поместить js для обновления div?

1 Ответ

2 голосов
/ 06 февраля 2012

В вашем контроллере перенаправьте на нужное вам действие (индекс, шоу и т. Д.). Сделать

respond_to do |format|
  format.js
end

под этим действием в вашем контроллере. Затем в соответствующем представлении есть файл с именем

index.js.erb

Или замените индекс на любое действие, просто обязательно дайте ему то же имя, что и вызывающее его действие.

EDIT

Я должен также упомянуть, что вы правильно добавили удаленное значение true для своей кнопки. По вашему вопросу трудно сказать, какое действие вы пытаетесь достичь с помощью какого контроллера. Если вы пытаетесь получить доступ к действию show контроллера ArticleSitePermission, у вас все хорошо. Тем не менее, кажется, что вы не пытаетесь направить на показ. Проверьте эту ссылку для получения дополнительной информации о маршрутизации к различным действиям.

РЕДАКТИРОВАТЬ 2

Это должно сделать это.

<%= link_to 'Click me', {:controller => "article", :action => "update", :id => @article_site_permission_id },
      :remote => true %>

Кроме того, если все, что вы хотите сделать, это перенаправить на статью, вам не нужно делать js. Просто перенаправьте на статьи # show

...