Just curious if I am overlooking something simple here. I have deployed the remote_form_for in the show.html.erb code before to render comments on a post (project in this case) without a problem. I have moved this code to the index view and seems to degrade to the normal form_for action (page refresh). I am not getting any javascript errors so not sure what is wrong here. Here is my code:
index.html.erb
<% remote_form_for [project, Comment.new] do |f| %>
<p>
<%= f.label :body, "New Comment" %><br/>
<%= f.text_area (:body, :class => "textarea") %>
</p>
<p>
<%= f.label :name, "Name" %> (Required)<br/>
<%= f.text_field (:name, :class => "textfield") %>
</p>
<p>
<%= f.label :email, "Email" %> (Required but will not be displayed)<br/>
<%= f.text_field (:email, :class => "textfield") %>
</p>
<p><%= f.submit "Add Comment" %></p>
<% end %>
CommentsController#create
def create
@project = Project.find(params[:project_id])
@comment = @project.comments.create!(params[:comment])
respond_to do |format|
format.html { redirect_to projects_path }
format.js
end
end
/views/comments/create.js.rjs
page.insert_html :bottom, :commentwrapper, :partial => @comment
page[@comment].visual_effect :highlight
page[:new_comment].reset
page.replace_html :notice, flash[:notice]
flash.discard
/views/comments/_comment.html.erb
<% div_for comment do %>
<div id="commentwrapper">
<% if admin? %>
<%=link_to_remote "X", :url => [@project, comment], :method => :delete %>
<% end %>
<%= h(comment.body) %><br/><br/>
Posted <%= time_ago_in_words(comment.created_at) %> ago by <%= h(comment.name) %>
<% if admin? %>
| <%= h(comment.email) %>
<% end %></div>
<% end %>