0

User モデルと Todo モデルがあります

Todo の belongs_to User と User has_many todos

todos は「完了」としてマークすることができ、それをマークしたユーザーを保存したいと思います。

私はこの移行を持っています

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

ここで、todo を完了としてマークしたユーザーのユーザー 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"

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 に答える