1. Model Validation With Multiple Controllers Involved
I have a Posts controller and model and a Comments controller and
model. Posts has a show method and a corresponding view that shows a
post and its associated comments, which are rendered with a partial
from comments. Another partial from comments is used to allow the user
to add their comment to the page.
Problem: If a user tries to add a new comment but it fails the comment
model validation, how do I get back to the show page from posts and
display the model validation error for the new comment?
views/posts/show.rhtml
#spit out the details of the post
...
#render the existing comments and let a user make a new one
<h2>Comments</h2>
<%= render :partial => "comments/comment", :collection =>
@post.comments %>
<%= render :partial => "comments/new"%>
controllers/comments_controller.rb
#new method unnecessary because the "comments/new" partial never calls
it?
def new
@comment = Comment.new
end
def create
@comment = Comment.new(params[:comment])
if @comment.save
redirect_to :controller => "posts", :action =>
"show", :id =>
@comment.post
else
#we''re over in the comments controller - how do we get our data
validation errors from the
#comments model back over to the show page of posts?
render :controller => "posts", :action => "show"
end
2. Good MVC Design
OK so for my little blog app at first I had just one controller, blog,
and just kept adding methods there like add_post, add_comment, etc. It
seemed like maybe that was a bad idea so I decided to use three
controllers instead of one: blog, posts, and comments. Blog would be
light-weight and not have to care about the details of posts or
comments. But then I ran into the problem described above.
What would be the most natural way to structure this kind of thing
with MVC, one blog controller with double-barelled methods like
add_post, add_comment etc. or a bunch of controllers like posts,
comments, etc. that do all the heavy lifting?
Thanks,
Yink
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
1. Model Validation With Multiple Controllers Involved
I have a Posts controller and model and a Comments controller and
model. Posts has a show method and a corresponding view that shows a
post and its associated comments, which are rendered with a partial
from comments. Another partial from comments is used to allow the user
to add their comment to the page.
Problem: If a user tries to add a new comment but it fails the comment
model validation, how do I get back to the show page from posts and
display the model validation error for the new comment?
views/posts/show.rhtml
#spit out the details of the post
...
#render the existing comments and let a user make a new one
<h2>Comments</h2>
<%= render :partial => "comments/comment", :collection =>
@post.comments %>
<%= render :partial => "comments/new"%>
controllers/comments_controller.rb
#new method unnecessary because the "comments/new" partial never calls
it?
def new
@comment = Comment.new
end
def create
@comment = Comment.new(params[:comment])
if @comment.save
redirect_to :controller => "posts", :action =>
"show", :id =>
@comment.post
else
#we''re over in the comments controller - how do we get our data
validation errors from the
#comments model back over to the show page of posts?
render :controller => "posts", :action => "show"
end
2. Good MVC Design
OK so for my little blog app at first I had just one controller, blog,
and just kept adding methods there like add_post, add_comment, etc. It
seemed like maybe that was a bad idea so I decided to use three
controllers instead of one: blog, posts, and comments. Blog would be
light-weight and not have to care about the details of posts or
comments. But then I ran into the problem described above.
What would be the most natural way to structure this kind of thing
with MVC, one blog controller with double-barelled methods like
add_post, add_comment etc. or a bunch of controllers like posts,
comments, etc. that do all the heavy lifting?
Thanks,
Yink
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---