0

我想photo_albums在我的数据库中的表中添加一行,其中包含用户 IDcurrent_user和专辑标题 "Posts Album" before_create

  • 用户有很多相册
  • 相册属于用户

before_create :build_profile我使用在我的配置文件表中为用户个人信息构建一个空行来实现类似的功能。此代码在我的用户模型中。

我想在我的photo_albums桌子上实现类似的东西。在创建用户时,在photo_albums表中创建一个相册,该相册将存储所有与微博相关的图像。在创建用户时,我只需要一行album title = "post album"和他们的用户 ID。

模型片段

class User < ActiveRecord::Base
  has_one  :profile, :autosave => true
  has_many :photo_albums
  has_many :microposts

  before_create :build_profile

控制器的create动作

def create
  @user = User.new(params[:user])   
  respond_to do |format|
    if @user.save 
      login @user
      UserMailer.join_confirmation(@user).deliver
      format.js { render :js => "window.location = '#{root_path}'" } 
    else
      format.js { render :form_errors }
    end
  end
end

我怎样才能做到这一点?请注意,用户有很多相册,所以我无法使用build_photo_album. 我已经阅读了指南中的一些信息,但仍然无法弄清楚。将不胜感激一个解决方案。

4

1 回答 1

2

我没有更好的解决方案,然后像这样创建一个自定义回调:

更新(你甚至不需要user_id => self.idPhotoAlbum.create参数中定义,它会自动设置)

after_create :build_default_photo_album

def build_default_photo_album
  self.photo_albums << PhotoAlbum.create(:title => "post album")
end
于 2012-05-05T22:50:43.690 回答