Я рву волосы над этим:
Я пытаюсь использовать модал Twitter Bootstrap (v.1, а не 2) для публикации комментариев через AJAX, используя стандартные модальные атрибуты TB для div:
<div class="modal hide fade" id="commentModal">
<div class="modal-header">
<a href="#" class="close">×</a>
<h3>Say Something</h3>
</div>
<div class="modal-body">
<%= render 'common/error_messages', :target => @comment %>
<%= form_for [@commentable, Comment.new], :remote => true do |f| %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.text_area :content, :size => "84x5" %>
</div>
<div class="modal-footer">
<%= f.submit "Comment", :class => "btn primary",:id => "submitButton" %>
</div>
<% end %></div>
При нажатии на ссылку запускается модальный штраф, и независимо от того, удаляю я или нет remote => true
сообщение, создается штраф (один перезагружается, другой - нет). Но мне кажется, что у меня не может быть create.js.erb
действия, запускающего ЛЮБОЙ javascript, даже просто чтобы скрыть модал, а тем более добавить комментарий:
$('#commentModal').modal('hide');
Однако, если я перехватываю событие click, я могу скрыть модальный штраф:
$(document).ready(function() {
$('#submitButton').click(function(){
$('#commentModal').modal('hide');
return false;
});
});
Это, конечно, побеждает типичную структуру Rails прохождения действия create в js.
Может кто-нибудь показать мне, как использовать модал Twitter Bootstrap, чтобы оставлять комментарии через AJAX? Одно условие: методология публикации комментариев должна быть независимой от модели, поскольку я хочу использовать код на множестве моделей (полиморфная ассоциация).
Или давайте просто начнем с того, что покажем мне, как отклонить чертову вещь с помощью действия контроллера ...
Как всегда, спасибо.