【发布时间】:2013-02-17 02:46:03
【问题描述】:
我有三个相关的对象:
class Site < ActiveRecord::Base
belongs_to :program
end
class Program < ActiveRecord::Base
belongs_to :user
has_many :sites
end
class User < ActiveRecord::Base
has_many :programs
end
在我的Sites index 视图中,当循环浏览我的所有网站时,我想显示Edit 和Destroy 按钮,但前提是current_user 拥有该网站:
- if current_user == site.program.user || current_user.try(:admin?)
= icon_link_to "edit", 'Edit', edit_program_site_path(site.program, site), :class => "btn btn-primary"
= icon_link_to "trash", "Delete", site, confirm: 'Are you sure?', method: :delete, class: 'btn btn-danger'
此代码失败,因为程序和用户对象为零。
我知道在我的控制器中我需要以下内容:
@sites = Site.includes(:programs).all
这将解决访问site.program 的问题,但是我不确定如何还包括user。
如果当前架构被认为不正确,则可以接受模型更改。
谢谢。
【问题讨论】:
标签: ruby-on-rails-3 activerecord ruby-on-rails-3.2