0

我有 User 和 Todo 模型

Todo belongs_to User 和 User has_many todos

待办事项可以标记为“完成”,我想存储将其标记为完成的用户。

我有这个迁移

class CreateTodos < ActiveRecord::Migration
def self.up
    create_table :todos do |t|
      t.integer :done_by_user
    end
  end
end

现在我想将标记待办事项的用户的用户 ID 存储在 :done_by_user

我在 Todo 课上试过这个

has_one :done_by_user, :class_name => "User"

还有这个

has_one :done_by_user, :through => :user

我该怎么做?

4

1 回答 1

1

在您的 Todo 课程中:

belongs_to :done_by_user, :class_name => "User", :foreign_key => "done_by_user"

在您的用户类中

has_many :done_todos, :class_name => "Todo", :foreign_key => "done_by_user"

现在你可以这样做:

user.done_todos   => ['done_todo_1', 'done_todo_2', ... , 'done_todo_n']
todo.done_by_user => < User Object >
于 2012-12-07T14:20:18.980 回答