2013-01-05 36 views
0

我有兩個模型用戶和配置文件(用戶來自devise)。用戶可以有許多配置文件,所以我創建了一個遷移來將user_id添加到配置文件。無法在新方法中使用Devise更新我的外鍵表

class Profile < ActiveRecord::Base 
belongs_to :user 

attr_accessible :description, :name, :product, :image, :price , :user_id 
mount_uploader :image, ImageUploader 
validates_presence_of :name, :product,:image, :price 
end 

class User < ActiveRecord::Base 

# Include default devise modules. Others available are: 
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable 
devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 
# Setup accessible (or protected) attributes for your model 
attr_accessible :email, :password, :password_confirmation, :remember_me 

# attr_accessible :title, :body 
has_many :profiles 
validates_associated :profiles 
end 

在我的配置文件控制器中,我有一個新的方法來創建一個新的配置文件。我希望當用戶登錄時,他只能看到他的個人資料並非全部。 高清新

@profile = current_user.profiles.build 

#@profile = @user.profile.new 

respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @profile } 
end 

理想的情況下,我的user_id列應與構建更新,但我的user_id沒有更新,這就是爲什麼不顯示文件。我使用pg gem使用postgresql,當我手動添加該配置文件的user_id時,我能夠看到配置文件。

請幫助解決這個問題,我能夠從很長一段時間瞭解這一點。讓我知道你是否想要更多的信息來解決這個問題。

回答

0

也許嘗試這樣的事情在你的控制器:

if current_user.profiles.count == 0 
    profile = Profile.create 
    current_user.profiles << profile 
end 
+0

現在讓我對我的看法錯誤,未定義的方法'MODEL_NAME」的NilClass:第1類:<%=的form_for @profile,:HTML => {:class =>'form-horizo​​ntal'} do | f | %> 2:

3:<%= controller.action_name.capitalize%>配置文件。我認爲我應該做什麼改變 – Mindtrades