_
为什么他自己已经回答了这个问题,我会在一分钟内解决这个问题。首先,在不同 url 之间传递数据(特别是字符串)的最简单方法是这样的:
class MyShoe < Shoes
url '/', :index
url '/somewhere/(\d+)', :somewhere
def index
@var = para link( "What is 2 + 2?", :click => "/somewhere/4" )
end
def somewhere(value)
para "2 + 2 = #{value}"
end
end
Shoes.app
它将匹配正则表达式的子组并将匹配的字符串作为参数传递给方法。偶尔有用,但很快就会变得笨拙。另一种解决方案是使用常量或类变量,_
为什么在这里解释:
好的,所以再胡闹,看起来所有实例变量都得到了
在 Shoes 子类中的每个方法的开头擦除。
没关系,我猜。那么,将一些数据
从一个鞋 URL 共享到另一个 URL 的首选方法是什么?在 URL 本身中将它从一个页面传递
到下一个页面是有效的——如果它是一个字符串。如果不是
字符串,你应该使用什么——@@class_variables?
当然,您可以使用类 var。这些保证会在应用程序的整个生命周期中持续存在。或者一个常数。
另外,Shoes 自带 SQLite3,可以在那里传递数据。
在您的示例中,它看起来像这样:
class MyShoe < Shoes
url '/', :index
url '/somewhere', :somewhere
def index
@@var = para link( "go somewhere", :click => "/somewhere" )
end
def somewhere
para "var = #{@@var.inspect}"
end
end
Shoes.app