отправить две формы AJAX на одной странице, используя рельсы - PullRequest
0 голосов
/ 22 апреля 2011

Мне нужно разделить формы на моей странице, которые похожи в том, что я создаю комментарий через ajax для каждого.

Не работает должным образом, поскольку они оба используют один и тот же файл create.js.erb.

Как бы я разделил их так, чтобы они отображали только соответствующий код jQuery?

Индекс:

Форма № 1

<% form_for(@snapshot_comment, :html => { :class => "snapshot_comment", :id => "snapshot_comment" } do |f| %>
Some stuff
<% end %>
<ol id="snapshot_comments_collection">
Append stuff here...
</ol>

Форма № 2

<% form_for(@photo_comment, :html => { :class => "section-photo-comments", :id => "section-photo-comments" } do |f| %>
Some stuff
<% end %>
<ol id="comments-collection">
Append stuff here...
</ol>

Контроллер:

# POST /comments
  # POST /comments.json
  def create
    @comment = current_user.comments.build(params[:comment])
    @comment.commentable.authorize(params[:auth_key])
    unauthorized! unless can? :create, @comment
        if @comment.save
        respond_to do |format|
          format.html { redirect_to(request.headers["Referer"]) }
          format.js
          format.json {
          render :json => @comment, :status => :created, :location => @comment
          }
        end
         else
        redirect_to(request.headers["Referer"])
          end
  end

Create.js.erb :

$j("<%= escape_javascript(render(:partial => @comment)) %>").prependTo("#snapshot_comments_collection");
$j('#snapshot_comment')[0].reset();

$j("<%= escape_javascript(render(:partial => @comment)) %>").prependTo("#comments-collection");
$j('#section-photo-comments')[0].reset();

1 Ответ

0 голосов
/ 25 апреля 2011

Вы можете просто использовать $(), но я не вижу возможности использования :remote => true для ваших форм?Вставьте журнал вашего сервера rails (dev).

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