我遇到了Rails 3和新路由的一般结构问题.rb让我有点困惑。感谢您提供任何帮助或指导。
我有一个嵌套资源的论坛应用程序。有部分,主题和回复。 routes.rb结构如下所示:
resources :sections do
resources :topics do
resources :replies
end
end
我的section.rb:
has_many :topics
has_many :replies, :through => :topics
我的主题.rb:
belongs_to :section
has_many :replies
我的回复.rb:
belongs_to :topic
这非常有效。现在我在这里感到困惑。
我使用Devise添加了一个用户控制器,并且有一个工作用户名登录/注销系统。我正在尝试将'current_user'与回复和主题相关联。我想我对如何修复模型有一个好主意,但我对在routes.rb文件中做的事情感到很困惑。
对于user.rb,我相信我需要添加“has_many:topics”和“has_many:reply,:through =>:topics”。然后在我的主题中,我需要添加“belongs_to:user”。我相信reply.rb保持不变?
至于routes.rb我有点难过。如果我编辑路由并向其添加用户,我会得到一个类似sectionid / username / topicid /的路径,但我不一定需要在这样的路由中存储用户名。所以我将用户嵌入到部分和主题之间,或者我可以将用户从routes.rb文件中删除。
答案 0 :(得分:2)
您可以让用户退出路径。只需在您的路径上包含devise_for:users,而不将其包含在资源块中。
用户有很多主题并且有很多回复。主题和回复都属于用户。
您需要对控制器进行更多更改。您需要添加一个before_filter来检查用户是否经过身份验证,以及大多数控制器方法的更改,以检查用户是否不仅经过身份验证,还获得了授权,例如对于编辑查找,你可以执行current_user.replies ....你可以在这里阅读更多内容(我自己的页面):http://www.communityguides.eu/articles/4。