所以我正在开发一个新的rails项目,该项目涉及从单个rails安装运行多个网站。我很困惑如何在不嵌套资源的情况下进行关联。
注意:我正在使用子域名,因此url将是site1.ex.com/photos, site2.ex.com/ramps
例如,我现在有一个名为网站1 的网站,网站1 包含照片,视频和网站。我可以通过告诉rails网站has_many来做关联:照片,:视频,:ramps(代码格式不正确只是给你的想法)。一切正常,包括网址,但这是我的问题。
这是我想做的
Am rails newb所以我添加了图片,这样有人可以理解我想要完成的任务。
答案 0 :(得分:1)
如果您使用子域,则不必使用sites
的嵌套资源。要查找网站:
class ApplicationController < ActionController::Base
before_filter :find_site_by_subdomain
def find_site_by_subdomain
@site = Site.find_by_subdomain!(request.subdomain)
end
end
对于所有其他资源,您不将它们嵌套在Site
下,而是将它们用作父级(相册/照片,视频,斜坡)。在您的AlbumsController
中,您只需要拥有当前子域名的网站,因此您可以使用ApplicationController
中的before_filter并使用@site
对象:
class AlbumsController < ApplicationController
…
def show
@album = @site.albums.find(params[:id])
end
…
end