Rails 在我使用 SimpleDelegator 时生成了错误 ID 的路径
Rails generates path with wrong id when I use SimpleDelegator
我有
= 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)
好的,我找到答案了
delegate :id, :to_param, to: :order_item
我有
= 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)
好的,我找到答案了
delegate :id, :to_param, to: :order_item