【译】使用模型关联

Saturday, July 24, 2010

原文:
http://rails-bestpractices.com/posts/2-use-model-association

使用模型关联避免在在控制器中指定引用

丑陋的...

class PostsController < ApplicationController
  def create
    @post = Post.new(params[:post])
    @post.user_id = current_user.id
    @post.save
  end
end

在这个例子中, user_id 赋给@post, 这不是什么大问题,但是我们可以使用模型的关联一行解决这个问题

重构...

class PostsController < ApplicationController
  def create
    @post = current_user.posts.build(params[:post])
    @post.save
  end
end

class User < ActiveRecord::Base
  has_many :posts
end

我们在用户模型中定义一个用户有多篇文章(has_many
:posts),然后我们只要用“current_user.posts.build”或者“current_user.posts.create”来新建文章了,而且ActiveRecord自动的把当前用户的id号赋给了这篇文章。

This entry was tagged Rails and Best-Practices

comments powered by Disqus

© 2009-2013 lxneng.com. All rights reserved. Powered by Pyramid

go to Top