如何在Roda视图中生成路径或网址?我需要使用插件吗?如果没有,还有其他什么?或者我将不得不硬编码URL /路径?如何在Roda中生成链接/路径/路径?
在Rails我这个做这样:
<%= home_about_path %>
如何在Roda视图中生成路径或网址?我需要使用插件吗?如果没有,还有其他什么?或者我将不得不硬编码URL /路径?如何在Roda中生成链接/路径/路径?
在Rails我这个做这样:
<%= home_about_path %>
由于link_to
是Rails帮手,你可以做的是使用anchor
标签,以及href
属性中的“手动”指定路线。
我假设你已经定义了你的应用(/app.rb
)类。
为了让您的路线,你可以使用roda-route_list插件,(有一个插件像往常一样)添加它,也加入render
插件,并指定引擎 - 在这种情况下,雇员再培训局,我认为是更容易和更快:
class App < Roda
plugin :route_list
plugin :render, engine: 'erb'
在创建第一个路由之后,您必须在其上面添加一个注释,指定名称,方法,URI和/或参数等......在这种情况下,只是响应GET请求的根路径:
# route[root]: GET/
request.root do
render 'root'
end
这是# route[root]: GET /
:
route
:关键字路由,需要定义它们。[root]
:路由的名称 - 如Rails的alias
选项。GET
:HTTP动词。/
: URI。您可以看到更多here。然后你可以使用roda-parse_routes
可执行文件生成与app.rb
文件中定义的路由JSON文件:
$ roda-parse_routes -f routes.json app.rb
这应该给你一个JSON文件中指定path
,methods
和路由name
,如:
# routes.json:
[{"path":"/","methods":["GET"],"name":"root"}]
现在您可以使用listed_route
方法获取您的路线并与之一起工作。
创建/views
文件夹内的root.erb
文件,如render 'root'
规定和里面可以添加亚割标签,并在href属性中,打印listed_route
方法的内容要求的:root
路线,如:
<a href="<%= listed_route(:root) %>">Root</a>
现在,您可以在您的视图中访问您的路线。尽管重定向到同一条路线不作太多的感觉,那么你就可以创建一个新的路线,只是得到一个在request.root
后,如:
# route[hello]: GET /hello
request.get 'hello' do
@greeting = 'hello world'
render 'hello'
end
它期望渲染hello
ERB文件,使得可用一个@greeting
实例变量。因此,在此文件中,您可以传递根路由并检查@greeting变量是否成功。
<a href="<%= listed_route(:root) %>">Root</a>
<%= @greeting %>
不要忘了再次运行roda-parse_routes
命令来生成新路由。你应该看到类似的东西:
[{"path":"/","methods":["GET"],"name":"root"},{"path":"/hello","methods":["GET"],"name":"hello"}]