Как мне выполнить другое действие, чем CRUD, с помощью ajax в Rails? - PullRequest
0 голосов
/ 30 октября 2011

Итак, я новичок в Ajax в RoR и у меня возникла первая проблема с выполнением файла .js.erb после завершения какого-либо действия. Под «некоторыми действиями» я подразумеваю не генерируемые по умолчанию Rails, потому что они, кажется, работают нормально.

Вот что я получил:

  • index.html.erb

    <%= form_tag(:action => 'add_comment', :remote => true) do |c| %>
        Name:
        <%= text_field :comment, :name %>
        <br/>
        Comment: 
        <br/>
        <%= text_area :comment, :text, :cols => 30, :rows => 10 %>
        <br/><br/>
        <%= submit_tag 'Add comment' %>
    <% end %>
    
  • действие add_comment в comments_controller.rb :

    def add_comment
            @comment = Comment.new(params[:comment])
            @comment.save
    
            respond_to do |format|
                    format.html { redirect_to comments_path }
                    format.js
            end
    end
    
  • routes.rb :

    match 'comments/add_comment' => 'comments#add_comment'
    

И все же комментарий добавляется обновлением страницы - add_comment.js.erb не выполняется (при переименовании обоих действий add_comment и add_comment.js.erb в 'create' работает).

Что я делаю не так?

1 Ответ

0 голосов
/ 30 октября 2011
<%= form_tag add_comment_path, :remote => true do %>
  ...
<% end %>

В ваших маршрутах:

resources :comments do
  post :add, :on => :collection
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...