如何显示登录用户创建的帖子给他?

时间:2012-12-26 05:12:11

标签: ruby-on-rails ruby-on-rails-3

这看起来相当直接,但我仍然无法完成它

我安装了Devise并拥有User和Website类,用户可以在其中创建网站。

现在我希望登录用户看到他创建了哪些网站。这是控制器代码

def index
@websites = Website.find(:all)
end

并且index.html.erb是

<%= render :partial=> "website_list", :locals=> {:website => @Website} %>

我需要更改控制器索引以显示仅由登录用户创建的网站

编辑 - 好的,我可以使用迁移在网站表中创建外键user_id,但user_id的值都是NIL。知道为什么吗?

编辑2 - 这是我的字段

CONTROLLER dashboard_controller.rb

@websites = current_user.websites.all

website_controller.rb 这是由脚手架创建的,我没有在其中编辑任何内容

MODEL user.rb

has_many :websites

website.rb

attr_accessible :description, :url, :user_id (**I added :user_id here**)
belongs_to :user

视图

<%= render :partial=> "website_list", :locals=> {:website => @Website} %>

移植

add_column :websites, :user_id, :integer

我不确定我错过了什么?

4 个答案:

答案 0 :(得分:1)

您可以使用:

@websites = current_user.websites.all 

答案 1 :(得分:0)

试试这个:

@websites = Website.find(:all, :conditions => ['user_id = ?',current_user.id.to_s])

答案 2 :(得分:0)

你可以这样做..

    @websites = Website.where("client_id='101'")

答案 3 :(得分:0)

我认为问题出在控制器中的创建操作中 - 您正在保存网站而不与用户建立连接。

相关问题