I have a <% @user.comments.each do |comment| %>
and inside it is
<%= form_for [???, Subcomment.new],:remote => true do |form| %>
What can I use at ??? to ensure that the current @user.comment is
passed to the controller?
If I use
<%= form_for [comment, Subcomment.new],:remote => true do |form| %>
I get
No route matches {:controller=>“subcomments”, :comment_id=>#<Comment
body: “Comments coming up twice”, user_id: 2, commenter: “gleb”, id:
nil>}
Ive attached the page with the full code
Is it possible to do it this way? If not how can it be done?
On Jul 17, 5:45 pm, Neil B. [email protected] wrote:
<% @user.comments.each_with_index do |comment,index| %>
…
…
<%= form_for [Comment, Subcomment.new],:remote => true do |form|
%>
Here you should put the comment the subcomment is for, not Comment. If
you do that then you shouldn’t need a hidden_field with the
comment_id.
Fred
<% @user.comments.each_with_index do |comment,index| %>
…
…
<%= form_for [Comment, Subcomment.new],:remote => true do |form|
%>
<%= form.text_field :body %>
<% form.hidden_field :comment_id ,index[1] %>
<%= form.submit %>
<% end %>
<% end %>
It insists that comment_id = Comment
Started POST “/comments/Comment/subcomments” for 127.0.0.1 at 2011-07-17
17:31:54 +0100
Processing by SubcommentsController#create as JS
Parameters: {“utf8”=>“✓”,
“authenticity_token”=>“Ca9IHcB/No8OJ/9MLtXSeuas7n1Mp8GyxpIAMLJxMXo=”,
“subcomment”=>{“body”=>“cat”}, “commit”=>“Create Subcomment”,
“comment_id”=>“Comment”}
What is the correct way to do this?
Frederick C. wrote in post #1011256:
<%= form_for [Comment, Subcomment.new],:remote => true do |form|
%>
Here you should put the comment the subcomment is for, not Comment. If
you do that then you shouldn’t need a hidden_field with the
comment_id.
Fred
If I do that I get this in the terminal.
Started POST “/comments/2/subcomments” for 127.0.0.1 at 2011-07-17
19:00:55 +0100
Processing by SubcommentsController#create as JS
Parameters: {“utf8”=>“✓”,
“authenticity_token”=>“Ca9IHcB/No8OJ/9MLtXSeuas7n1Mp8GyxpIAMLJxMXo=”,
“subcomment”=>{“body”=>“dog”}, “commit”=>“Create Subcomment”,
“comment_id”=>“2”}
User Load (0.6ms) SELECT “users”.* FROM “users” WHERE “users”.“id” =
4 LIMIT 1
AREL (0.3ms) INSERT INTO “subcomments” (“body”, “commenter”,
“comment_id”, “created_at”, “updated_at”) VALUES (‘dog’, ‘natty’, NULL,
‘2011-07-17 18:00:56.130372’, ‘2011-07-17 18:00:56.130372’)
Rendered comments/_subcomment.html.erb (0.5ms)
Rendered subcomments/create.js.erb (4.1ms)
Completed 200 OK in 300ms (Views: 16.8ms | ActiveRecord: 0.9ms)
Why won’t it pass the comment_id when saving?
Neil
Neil B. wrote in post #1011261:
Frederick C. wrote in post #1011256:
<%= form_for [Comment, Subcomment.new],:remote => true do |form|
%>
Here you should put the comment the subcomment is for, not Comment. If
you do that then you shouldn’t need a hidden_field with the
comment_id.
Fred
Strike last posting , there was an error in the controller. All OK now.
Still don’t know why I got the error in my first post.
Neil
On Jul 17, 7:32pm, Neil B. [email protected] wrote:
Fred
Strike last posting , there was an error in the controller. All OK now.
Still don’t know why I got the error in my first post.
Because your routes are setup to pull comment_id from the URL.
Fred