在http://localhost:3000/books
,我有一个索引页,其中有一个书籍列表。
当您单击其中一个链接时,它所绑定的操作book
会被触发:
但是,当您单击其中一个书页中的链接之一时,book
不会触发该操作:
请注意,从索引页面和书籍页面单击链接时,URL 确实会发生变化,但是我遇到的问题是,book
当您单击另一本书的书籍页面的链接时,该 URL 不会被激活页。我该如何解决这样的情况?
仅供参考,这是一个可以重现此问题的存储库。
该方法book
不会被调用两次,因为您的视图已经设置好。url 中的更改只会在您的视图中触发响应式更新。
你想达到什么目的?
这么晚才回复很抱歉。这是我要修复的列表中的一个已知问题。正如 GDP2 所述,您可以使用 .watch!处理它,或者可能更好的方法是以更实用的方式编写控制器,以便从参数中提取的数据用于方法而不是设置实例变量。
因此,例如,如果您在查询中使用参数,而不是执行以下操作:
attr_reader :query
def index
@item = store.items.where(name: params._name).first
end
您可以执行以下操作:
def query
store.items.where(name: params._name).first
end
这可能看起来效率较低,但有很多缓存,这几乎同样有效。
不过,一旦我有时间,我会让它在访问的数据发生变化时重新触发 action 方法。(对不起,还没来得及。)