在http://localhost:3000/books,我有一个索引页面,其中有一个图书列表。

当您单击其中一个链接时,它绑定到的操作book将被触发:

但是,当您单击其中一个图书页面的链接时,book操作不会被触发:

请注意,当单击索引页和图书页的链接时,URL确实会发生变化,但我遇到的问题是,当您单击另一个图书页的链接时,book不会被激活。我怎么才能解决这种情况呢?
FYI,这是一个回购,在这里这个问题可以被复制。
发布于 2015-08-26 23:51:42
事实证明,Volt计算是解决这个问题的一种方法。通过使用params集合,可以将计算附加到URL中的更改。我解决了这个问题,并让book运行在URL中的更改,如:problems/commit/5fcefc16d7b14a980f68ce572a80f25540d21636。
发布于 2015-08-25 05:46:38
方法book不会被调用两次,因为您的视图已经设置好了。url中的更改只触发视图中的反应性更新。
你想要实现的是什么?
发布于 2015-08-27 05:46:11
抱歉,回复晚了。这是一个已知的问题,这是我要解决的问题。正如GDP2所提到的,您可以使用.watch!要处理它,或者更好的方法是以更实用的方式编写控制器,以便将从params中提取的数据用于方法中,而不是设置实例变量。
因此,例如,如果您在查询中使用params,而不是执行以下操作:
attr_reader :query
def index
@item = store.items.where(name: params._name).first
end你可以这样做:
def query
store.items.where(name: params._name).first
end这看起来可能不那么有效,但是有很多缓存,而这也同样有效。
不过,一旦我有时间,我将使它在访问数据更改时重新触发操作方法。(对不起,只是还没讲到这件事。)
https://stackoverflow.com/questions/32190146
复制相似问题