Ruby on rails rails—在非该类的视图中显示该类的所有元素';索引视图
我有一个有小说和插图的网站。在插图的显示页面上,我希望显示属于同一本小说的所有插图的缩略图网格。如何从视图中调用控制器中的方法(带参数),以返回使用find方法获得的小说列表?我尝试了以下操作,但错误消息声称控制器中没有此消息:Ruby on rails rails—在非该类的视图中显示该类的所有元素';索引视图,ruby-on-rails,Ruby On Rails,我有一个有小说和插图的网站。在插图的显示页面上,我希望显示属于同一本小说的所有插图的缩略图网格。如何从视图中调用控制器中的方法(带参数),以返回使用find方法获得的小说列表?我尝试了以下操作,但错误消息声称控制器中没有此消息: class IllustrationsController < ApplicationController . .#some code here . def get_related_by_novel @illustrations = Illustrat
class IllustrationsController < ApplicationController
.
.#some code here
.
def get_related_by_novel
@illustrations = Illustration.find(params[:id][:novel])
end
end
以下是控制器中的方法:
class IllustrationsController < ApplicationController
.
.#some code here
.
def get_related_by_novel
@illustrations = Illustration.find(params[:id][:novel])
end
end
类插图控制器
即使我得到了这个调用,我也不知道如何将当前查看的插图中的参数传递给控制器,以便它可以运行查询 谢谢。“即使我接到这个电话,我也不知道如何将当前查看的插图中的参数传递给控制器,以便它可以运行查询。” 您可能需要阅读有关和的Rails指南。显示插图的标准RESTful路线应该是:
get/instructions/:id=>instructions#show
这将向插图控制器发送请求,并将参数[:id]
设置为插图id。理想情况下,控制器应委托模型查找相关插图。假设您有一个标准,它有很多,并且属于小说和插图之间的关系,那么您的控制器代码可能如下所示:
class IllustrationsController
def show
@illustration = Illustration.find(params[:id])
@related_illustrations = @illustration.find_related
end
end
您的模型代码可能如下所示:
class Illustration
def find_related
self.novel.illustrations - [self]
end
end
总是有更多的方法可以做到这一点,但在我看来,这保持了与模型的关联逻辑,并保持了控制器的轻量级 这是一个非常优雅的解决方案。谢谢你的描述。这确实有助于我理解如何在模型中使用一些实用工具,而不仅仅是控制器。这是我一直在努力解决的问题。谢谢