当我使用SimpleDelegator时,Rails会生成带有错误id的路径

时间:2017-03-07 11:46:54

标签: ruby-on-rails actionview

我有

= link_to order_item_path(item)

item是实际OrderItem的实例,用

修饰
module CartPage
  class ItemDecorator < SimpleDelegator
    include ViewHelpers
    include BookCoverHelpers

    def initialize(order_item)
      @order_item = order_item
      super(order_item.book)
    end

    attr_reader :order_item
    delegate :id, to: :order_item

  end
end

事情是order_item_path(item)实际从书中获取id并省略delegate :id, to: :order_item

我知道我可以做order_item_path(id: item.id),但我不想,我想知道哪种方法实际上使用rails来获取id而我想覆盖该方法

P.S。 因为我也有

  - items.each do |item|
    = fields_for 'items[]', item do |item_fields|
      ..

其中fields_for错误ID(书中的ID)

1 个答案:

答案 0 :(得分:1)

好的,我找到了答案

delegate :id, :to_param, to: :order_item