Я хочу разработать функциональность ajax для комментирования сообщений на моем сайте.
Я делал это раньше, но я не знаю, почему у меня проблемы в этот раз. Rails выполняет действие Update из posts_controller вместо действия, называемого save_comment.
Это соответствующая строка моего файла маршрутов:
map.connect "/posts/save_comment", :controller => 'posts', :action => 'save_comment'
Это код вида:
<%= javascript_include_tag "prototype" %>
<% if logged_in? %>
<% remote_form_for :post, PostComment.new, :url => {:action => 'save_comment',:post_id=>inside_list.id}, :html => { :method => :put} do |f| %>
<p>
<%= f.label 'Comment' %><br />
<%= f.text_area :comment, :style=>'height:100px;' %>
</p>
<p>
<%= f.submit 'Publish' %>
</p>
<% end %>
<% end %>
Действие save_comment выглядит так:
def save_comment
comment = PostComment.new
comment.user_id = current_user.id
comment.post_id = params[:post_id]
comment.comment = params[:post][:comment]
comment.save
post = Post.find(params[:post_id])
render :update do |page|
page.replace_html 'dComments', :partial => 'post_comments/inside_list', :object => post
end
end
Кстати: есть ли более аккуратный способ сделать это?