我正在尝试做一个简单的家庭团聚网站:“帖子”、“家庭”、“孩子”和“图片”。理想情况下,我希望以这种方式构建路线/关系:
resources :posts do
resources :pictures
end
resources :fams do
resources :pictures
resources :kids do
resources :pictures
end
end
在模型中,我在 和 之间设置了必要的“ ”belongs_to
和“ has_many
”关系。 , , 和所有都用" 定义,而图片定义为:fams
kids
Fams
kids
posts
"has_many :pictures, :as => :imageable
belongs_to :imageable, :polymorphic => true
在尝试做的时候link_to "Edit"
,link_to "Destroy"
在pictures
视图中我遇到了各种各样的_path
问题。 polymoric_path
在两个级别上都可以正常工作,即 forposts-pictures
和fams-pictures
但它无法处理fams-kids-pictures
. 我猜它不是为处理imageable
对象上方的两个级别的“”对象而设计的picture
。另一个问题是,在一种情况下,pictures
控制器必须处理“一级”资源嵌套情况,而在另一种情况下,它必须处理“两级”情况。不知道如何解决这个问题。
根据 Ruby Guides 的指示,我尝试过的一件事是不要将资源嵌套超过一层。我这样组织它们:
resources :posts do
resources :pictures
end
resources :fams do
resources :pictures
resources :kids
end
resources :kids do
resources :pictures
end
由于不再保留家庭与孩子的关系,这导致了另一组路径问题。我也无法让 polymorphic_path 在所有不同的picture
视图中正确运行。
所以这是我的主要问题:有谁知道 Rails 3 示例/教程,其中嵌套资源、属于/has_many 和多态关系都放在一起,尤其是在它不仅仅是最简单的两级关系的地方举例说明?(我对 Rails 还很陌生,鉴于我缺乏 Rails 历史经验,我在这些领域发现的 Rails 2 示例令人困惑。)
或者有人可以告诉我如何构造我的视图的link_to EDIT
andlink_to DELETE
语句,以及我的控制器 中的 my ,和方法的语句吗?picture
redirect-to
create
update
destroy
pictures
谢谢!