我有一个用户注册并登录的rails项目。用户将创建“音乐”,所以我有一个“音乐”控制器,用户将填写一个标题,并上传他们的MP3。每个用户都可以做到这一点 - 这是很棒的。如何从其他控制器/表中将数据拖入一个列表?
当用户登录时,我希望他们在http://example.org/explore的良好列表视图中看到每个人上传的音乐。我将会在未来的这个“探索”页面的侧边栏的某个地方添加一些“自上次登录以来的最新增加内容”,以及其他一些功能。
我的问题是,我是否应该创建一个名为“Explore”的控制器,并使用类似以下内容的此列表的索引操作?
class ExploresController < ApplicationController
def index
@music = Music.all
end
def show
end
end
我想这可能是做正确的方式,但它似乎很奇怪,有“探索”控制器是使用所有你通常在“音乐”控制器见行动。音乐控制器将成为current_user的CRUD。
我正在使用设计。我能不能用设计创建一个UsersController,并将所有用户特定的音乐信息放在那里,并委托音乐控制器来使用它,也就是将音乐列入系统中? – JeffC 2012-02-03 18:01:40
你可以,但它不会真正符合Rails最佳实践。音乐控制器应该处理所有与音乐对象有关的CRUD操作,而不仅仅是列出它们。将它们放入UsersController似乎没有什么意义,仅仅因为它们需要登录用户。如果你正在使用Devise,那么只需要对某些方法进行身份验证非常简单,只需在MusicController的顶部放置'before_filter:authenticate_user !,:except =>:index'即可。 – 2012-02-03 18:12:16
这就是我想要做的,我想我是第二次猜测自己,谢谢汤姆 – JeffC 2012-02-03 18:21:26