这看起来相当直接,但我仍然无法完成它
我安装了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
我不确定我错过了什么?
答案 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)
我认为问题出在控制器中的创建操作中 - 您正在保存网站而不与用户建立连接。