2017-10-08 137 views

回答

0

由於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文件中指定pathmethods和路由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"}]