11155
(-- --)
July 27, 2010, 7:56pm
1
I have a form that accepts comments and adds them to a list without
refreshing the page.
This is the html:
<div id='aremark'>
<%= render :partial => 'comment' %>
</div>
<% remote_form_for :comment, :url=>story_comments_path(@story ), :html
=> { :id => 'comment' } do |form| %>
<h5><label for="login">Make a comment:</label></h5>
<div id="body"><%= form.text_field :body %></div>
<p><%= submit_tag 'Comment' %></p>
<% end %>
The form works i.e on refreshing the page the new comment is seen in the
comment partial.
From comments_controller
def create
@story = Story.find(params[:story_id])
@story.comments.create params[:comment]
flash[:notice] = "Thank you for commenting"
end
This is create.rjs
<script>
aremark = page.getElementById("aremark")
page.replace_html('aremark', :partial => "content")
</script>
This was working then didn't. I don't know what I did to break it.
Can anybody see where I am going wrong?
11155
(-- --)
July 27, 2010, 8:02pm
2
Neil Bye wrote:
I have a form that accepts comments and adds them to a list without
refreshing the page.
It should read
I want a form that accepts comments and adds them to a list without
refreshing the page.
This is create.rjs
<script>
aremark = page.getElementById("aremark")
page.replace_html('aremark', :partial => "content")
</script>
This is weird - if it's an rjs file you don't want script tags - an
rjs file only contains ruby.
Fred
11155
(-- --)
July 27, 2010, 10:35pm
4
So I strip it down to
page.replace_html('aremark', :partial => "content")
Still won't work without refreshing the page
Frederick Cheung wrote:
11155
(-- --)
July 28, 2010, 12:44pm
5
In the log I get
ActionView::MissingTemplate (Missing template comments/create.erb in
view path app/views):
Does that help anyone to explain
Oldroy
(Oldroy)
July 28, 2010, 2:56pm
6
Hello,
Shouldn't you be doing page.replace_html from inside your controller
and using your rjs page as a paramater passed to page.replace_html??
I think the log is telling you that your request found def
create....but without making def create render something other than
create.html.erb, won't the controller be looking for that instead of
your rjs template?
Oldroy
11155
(-- --)
July 28, 2010, 4:43pm
7
Oldroy wrote:
Hello,
Shouldn't you be doing page.replace_html from inside your controller
and using your rjs page as a paramater passed to page.replace_html??
I don't understand, how would it find the rjs and if the
page.replace_htm is in the controller what would it contain?
11155
(-- --)
July 28, 2010, 5:02pm
8
Neil Bye wrote:
Oldroy wrote:
but without making def create render something other than
create.html.erb, won't the controller be looking for that instead of
your rjs template?
I think this is the problem but I don't know the solution. Surely in the
absence of create.html.erb it should find create.rjs but
doesn't???