Указание части для рендеринга через Ajax в Rails 3 - PullRequest
0 голосов
/ 02 апреля 2012

Я вроде новичок в рельсах, и недавно пытался внедрить некоторый AJAX.На моей странице регистрации пользователя есть три кнопки для создания трех разных типов учетных записей.

Вот ссылка на каждую из них:

<%= link_to "sign up", signup_path(:format => 'js'), :remote => true, :rel => 'guest',  :id => 'account-signup-link' %>

В моем JavaScript на странице, когда нажимается одна из нихЯ добавляю класс 'current' к его тегу привязки.Обратите внимание, что я указываю тип учетной записи с помощью тега rel, это зависит от трех разных ссылок.

Мой new.js.erb файл, пораженный ajax, выглядит следующим образом ...

var template = $('a.current').attr('rel');     
$("<%= escape_javascript render(:file => 'users/_guest.html.erb') %>").insertAfter('#signup-form'); 

Как я могу заменить :file => 'users/_guest.html.erb' на переменную js некоторого типа, которая будет переключать гостя на релевантность кликаемого тега.У меня нет проблем с получением соответствующего rel, я проверил это с помощью простого предупреждения в new.js.erb .Но для жизни я не могу получить простую строку :file =>... в зависимости от rel нажатой кнопки.

Любая помощь будет принята с благодарностью.

Спасибо, Крис

1 Ответ

1 голос
/ 02 апреля 2012

Попытка доступа к переменным javascript невозможна, если у вас нет ruby.Также убедитесь, что вы занесены в белый список передаваемых параметров, поскольку пользователь может передавать произвольные данные.

Примите данные rel как часть параметра, например signup_path.js?rel=guest, и получите доступ через params [: rel].Это должен быть запрос POST, поскольку это URL-адрес создания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...