Rails 3:渲染时如何执行动作:动作?

时间:2011-06-07 08:10:40

标签: ruby-on-rails ruby-on-rails-3 rest rendering rescue

Rails 3推荐Rest。 例如,我制作博客系统。

### PostsController

# show detail
# tag have lock or unlock status
def show
 @post = Post.find(params[:id])
 @tags = @post.tags.select("posts_tags.tag_lock")
end

### CommentsController

# Posts#show has comment form.
# when you post comment, rails execute this action
def create
 @post = @post.find(params[:id])
 begin
  @post.comments.create!(params[:comment])
 resucue
   @tags = @post.tags.select("posts_tags.tag_lock")
   render 'posts/show'
 end
end

如果rails可以使用render执行操作,则resucue代码很简单。 也许,解决方案是采取新的行动。但是,规格没有新的动作...... 什么是更好的?那你呢?

抱歉,我的英语不好......

1 个答案:

答案 0 :(得分:0)

我认为你按照自己的方式做得很好(修正了一些拼写错误):

### PostsController

# show detail
# tag have lock or unlock status
def show
 @post = Post.find(params[:id])
 @tags = @post.tags.select("posts_tags.tag_lock")
end

### CommentsController

# Posts#show has comment form.
# when you post comment, rails execute this action
def create
 @post = Post.find(params[:id])
 begin
  @post.comments.create!(params[:comment])
 rescue
   @tags = @post.tags.select("posts_tags.tag_lock")
   render 'posts/show'
 end
end