У меня есть рубин код, который вызывает метод, чтобы принять кандидат на вакансию, как это:JQuery .replacewith рубинового кода
<%= link_to "Accept", accept_candidate_path(vacancy_id: @vacancy.id, employee_id: e.id), method: :post, :remote => true, :id => "link_#{i}" %>
Метод изменяет состояние в базе данных общепринятого.
После того, что нажата, я хочу заменить, что со следующим рубиновый код:
<%= link_to "Cancel", back_to_pending_path(vacancy_id: @vacancy.id, employee_id: e.id), method: :post, :remote => true%>
У меня также есть если/другое, что проверяет состояние кандидата, чтобы отобразить либо ссылки. Но это вызвано только обновлением страницы, и я просто хочу, чтобы она приняла ее, измените кнопку без полного обновления страницы.
В настоящее время у меня есть это:
$("[id^='link_']").click(function (event) {
$(this).replaceWith("Accepted")
});
и она работает укомплектовать хорошо с только что открытым текстом, но мне нужен текст, который будет встроенный рубин. Это возможно?
У вас здесь довольно много вариантов. 1) показать/скрыть обе ссылки и просто переключить их в зависимости. i.e .: show accept; при нажатии кнопки «Принять», «Скрыть» и «Отменить». 2) добавьте файл 'accept.js.erb' и добавьте здесь javascript. «Ненавязчивый javascript» - http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns 3. Обработайте ссылку через AJAX в файле javascript и верните частичный (через контроллер) новый канал. потребуется некоторое время, чтобы набрать все эти примеры, но я хочу, если вы захотите. –
использовать атрибут данных на элементах и прочитать это значение – charlietfl
Да, я должен был включить это в свой список @charlietfl. И чтобы добавить атрибут data, вы можете даже сгруппировать методы контроллера в один и принять/отменить в зависимости от текущего состояния, поэтому вам не придется менять большую клиентскую сторону. –