Ruby on rails 呈现局部时,在Object.find(params[:id])中使用错误id的Rails

Ruby on rails 呈现局部时,在Object.find(params[:id])中使用错误id的Rails,ruby-on-rails,Ruby On Rails,我有两个模型Package和Item,它们的关系在REDIS集合中定义,因此没有rails关系。在PackagesController中设置项的实例时遇到问题 在packages/show中 <ul> <% @items.each do |item| %> <li><a href="#" data-reveal-id="itemModal"><%= link_to item.item_name %></

我有两个模型
Package
Item
,它们的关系在REDIS集合中定义,因此没有rails关系。在
PackagesController
中设置
项的实例时遇到问题

packages/show中

    <ul>
    <% @items.each do |item| %>
      <li><a href="#" data-reveal-id="itemModal"><%= link_to item.item_name %></a></li>
    </ul>
    <% end %>

    <div id="itemModal" class="reveal-modal full" style="overflow: auto;" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
      <%= render 'items/item' %>
      <a class="close-reveal-modal" aria-label="Close">&#215;</a>
    </div>
PackagesController

    class PackagesController < ApplicationController
      def show
        @package = Package.find(params[:id])
        @items = @package.items  (items is the REDIS set showing items that belong to the package)
        @item = Item.find(params[:id])
      end
    end
class PackagesController
问题在于
@item=item.find(params[:id])
。它正在使用
package.id
查找项目。例如,如果页面位于
Package.id==6
,则它将在呈现的部分中显示
Item.id==6
,而不是单击的正确项


@item
位于不同型号的控制器上时,如何正确设置其值?

您希望它使用哪个
id
项目
params[:id]
是一个包
id
,大概是因为您的路线类似于
/packages/:id
;您希望项目
id
来自何处?我希望id来自项目列表中生成的特定项目。单击列表中的项目后,我希望显示正确的模式。项目列表来自REDIS集合,因此我不能使用类似于“@package.item”的内容。
    class PackagesController < ApplicationController
      def show
        @package = Package.find(params[:id])
        @items = @package.items  (items is the REDIS set showing items that belong to the package)
        @item = Item.find(params[:id])
      end
    end