2017-10-08 11 views

答えて

0

は何を行うことができますがanchorタグを使用することで、Railsのヘルパーで、href属性の中に「手動」のルートを指定します。

あなたのApp(/app.rb)クラスが既に定義されているとします。

あなたは(プラグインでいつものように)roda-route_listプラグインを使用して、それを追加することができ、あなたのルートを取得するには、また renderプラグインを追加して、エンジンを指定する - この場合はERBには、私は簡単かつ迅速であると思う:

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]:ルートの名前 - レールの場合はaliasオプションです。
  • GET:HTTP動詞。
  • /: URI。

詳しくはhereをご覧ください。以下のようなこれはあなたpathmethodsとルートnameを指定するJSONファイルを与える必要があります

$ roda-parse_routes -f routes.json app.rb 

、::

# routes.json: 
[{"path":"/","methods":["GET"],"name":"root"}] 
次に、あなたの app.rbファイル内で定義されたルートを持つJSONファイルを生成するために実行可能 roda-parse_routesを使用することができます

listed_routeメソッドを使用してルートを取得し、そのルートで作業することができます。

render 'root'で指定し、その中にあなたがachorタグを追加し、href属性の中に、:rootルートを求めるlisted_route方法のコンテンツを印刷するために、同様にできるよう/viewsフォルダ内のroot.erbファイルを作成します。

<a href="<%= listed_route(:root) %>">Root</a> 

これで、ビュー内のルートにアクセスできるようになりました。同じルートにリダイレクトすることはあまり意味がありませんが、あなたは新しいルートを作成することができ、同じように、request.root後の1をGET:

hello ERBファイルをレンダリングすることを期待して利用できるように
# route[hello]: GET /hello 
request.get 'hello' do 
    @greeting = 'hello world' 
    render 'hello' 
end 

a @greetingインスタンス変数。このファイルでは、ルートルートを渡して、@greeting変数が正常に来ていることを確認できます。

<a href="<%= listed_route(:root) %>">Root</a> 
<%= @greeting %> 

はあなたの新しいルートを生成するために、再度roda-parse_routesコマンドを実行することを忘れないでください。

[{"path":"/","methods":["GET"],"name":"root"},{"path":"/hello","methods":["GET"],"name":"hello"}] 
のようなものが表示されます。
関連する問題