在我的Rails应用程序中,我有一个Images
类,Store
& Maker
,我已将Images
设置为属于多态关联的imageable
(遵循大多数标准文档和Railscast),大多数都有效,但是当我添加回来时按钮到图像我不确定我真正想要选择的是什么:
polymorphic_path(@imageable.images)
不起作用:image_image_image_image_image_path
是产生的抛出错误,([@imageable, images])
等各种不同的组合没有帮助。 @imageable
肯定指向正确的类,如果我将其保留为polymorphic_path(@imageable)
,它将返回show
传递的对象。
我猜我错误地理解了我是如何传递物体的,但是我看不到它们。
编辑:只是为了澄清,我的意思是返回到对象的图像索引。
编辑:只是为了扩展我尝试过的内容,polymorphic_url
会返回相同的问题。 imageable_images_path
不起作用,因为它不是:resource
中的routes.rb
,[@imageable, images]
返回images
未定义。
编辑:要保存将其变成巨人,我会将相关文件添加为gists:
rake routes
输出https://gist.github.com/nicholassmith/6239971 答案 0 :(得分:1)
polymorphic_url(@imageable.images)
或甚至polymorphic_url(images)
之类的内容可能会有效
编辑:我想问题可能是@imageable
# calls post_url(post)
polymorphic_url(post) # => "http://example.com/posts/1"
polymorphic_url([blog, post]) # => "http://example.com/blogs/1/posts/1"
polymorphic_url([:admin, blog, post]) # => "http://example.com/admin/blogs/1/posts/1"
polymorphic_url([user, :blog, post]) # => "http://example.com/users/1/blog/posts/1"
polymorphic_url(Comment) # => "http://example.com/comments"
因此,当您传递polymorphic_path(@imageable)
并且它为您提供相关的展示页面时,这是有道理的,因为传递@imageable
实际上是在传递imageable
- /stores/X/images/1
的特定实例或/stores/X/images/2
等。如果您想转到索引,则不需要imageable
的特定实例 - 您只想要images
这是未经测试的,但请尝试
polymorphic_path(store, :images)
/ polymorphic_url(store, :images)
或
<强> polymorphic_path(@imageable, :action => 'index')
强>