QA@IT
«回答へ戻る

回答を投稿

まず、動画の投稿者を保存できるようにします。動画を Movie モデル、ユーザを User モデルとして、Movie#poster で投稿者を返すようにするには以下のようにモデルを定義します:

class Movie < ActiveRecord::Base
  belongs_to :poster, class_name: 'User'
end

class User < ActiveRecord::Base
  has_many :movies, foreign_key: 'poster_id'
end

動画を投稿するアクションで、動画と同時に投稿者を保存するようにします。Devise では current_user で現在ログイン中のユーザが取れますので、以下のように書けます:

@movie = Movie.create!(...) {|movie|
  movie.poster = current_user
}

あとはビューやアクションの中で Movie#postercurrent_user かどうかをチェックしてあげればよいです。

movie = Movie.find(...)
movie.poster == current_user #=> 投稿者本人のとき true
まず、動画の投稿者を保存できるようにします。動画を Movie モデル、ユーザを User モデルとして、`Movie#poster` で投稿者を返すようにするには以下のようにモデルを定義します:

``` ruby
class Movie < ActiveRecord::Base
  belongs_to :poster, class_name: 'User'
end

class User < ActiveRecord::Base
  has_many :movies, foreign_key: 'poster_id'
end
```

動画を投稿するアクションで、動画と同時に投稿者を保存するようにします。Devise では `current_user` で現在ログイン中のユーザが取れますので、以下のように書けます:

``` ruby
@movie = Movie.create!(...) {|movie|
  movie.poster = current_user
}
```

あとはビューやアクションの中で `Movie#poster` が `current_user` かどうかをチェックしてあげればよいです。

``` ruby
movie = Movie.find(...)
movie.poster == current_user #=> 投稿者本人のとき true
```