2012-12-28 64 views
1

我有一個帖子模型,我想屬於用戶。當我這樣做時,我無法在視圖中引用任何用戶的東西。我正在使用Devise。帖子屬於用戶

樁模型:

class Post < ActiveRecord::Base 
    attr_accessible :album, :artist, :song 
    belongs_to :user 
    validates_presence_of :album, :artist, :song 
end 

用戶模型:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :token_authenticatable, :confirmable, 
    # :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :username, :password, :password_confirmation, :remember_me 
    has_many :posts 

    validates_uniqueness_of :username 
    validates_presence_of :username, :password, :password_confirmation 
end 

我試着用<%= post.user.username %>引用的用戶名。我也試過<%= post.user%><%= post.user.name %>

UPDATE:我在表中添加了user_id。但是,當我發佈帖子時,usernameuser_id值不會被設置。

+0

如何展示你的模型,你怎麼想,所以我們知道你在說什麼引用「用戶的東西」? – Edward

+0

@Edward編輯它。 – weddingcakes

+0

當您嘗試製作這些參考文獻時會得到什麼錯誤? – claptimes

回答

1

謝謝大家,我修好了。 here's my create action。我打算重構它以使用工廠模式。

@post = Post.new(params[:post]) 
@post.username = current_user.username 
@post.user_id = current_user.id 
if @post.save 
    redirect_to action: "index" 
    @posts = Post.find(:all) 
else 
    render action: 'new' 
end 
+1

看建築throigh該協會。如果用戶有很多帖子。你可以做。 current_user.posts.create等,而不必手動設置user_id – Doon

相關問題