如何在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"}]