我有用户,群组和网页。每条记录都可以有图片。
这是我的架构:
Pictures
的多态模型。用户,组和页面为picturable
。pictures
控制器(例如users/5/pictures
)这是最标准的设置吗?我忘记了任何Rails惯例吗?
routes.rb
示例如下所示:
resources :users do
resources :pictures
pictures_controller.rb
看起来像这样:
class PicturesController < ApplicationController
before_filter :load_picturable
def show
@picture = @picturable.pictures.find(:id)
end
# Get permissible for different objects.
def load_picturable
resource, id = request.path.split('/')[1,2] # /photos/1
# Couples this controller to format of URL, not ideal.
@picturable = resource.singularize.classify.constantize.find(id)
end
end
答案 0 :(得分:1)
烨。这几乎就是我过去使用多态图像模型的项目所使用的。
在我的最新项目中,我将多态关系标记为可上载,并使用相同的方法获取URL数据。
def load_uploadable
resource, id = request.path.split('/')[1,2]
@uploadable = resource.singularize.classify.constantize.find(id)
end
如果有帮助,这是我的节目功能。
def show
@asset = Asset.find(params[:id])
@assets = @uploadable.assets
respond_to do |format|
format.html
format.json { render json: @asset}
end
端