あなたがやっていることは本当にレールリンクの反パターンです。 レールにリンクを生成するには、..._path
メソッドを使用してください。
次のコマンドを使用してルートを見ることができます:
$ bin/rake routes
あなたにこのようないくつかの出力を与えることになる。そこから
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
をあなたがpath
方法のためにあなたの接頭辞を取ることができます。それ以上の路線で
は非常に簡単です:
<%= link_to "New User", new_user_path %>
はどの本を生成します。
<a href="https://stackoverflow.com/users/new">New User</a>
あなたがダイナミックルートを持っている場合は、このようなルートを定義することができます。
# app/controllers/something_controller.rb
class SomethingController < ApplicationController
def show
puts params[:id]
end
end
今
あなたが/something/this-is-awesome
を訪問した場合、あなたが渡された値にアクセスすることができます:あなたのコントローラで、その後
# config/routes.rb
Rails.application.routes.draw do
get '/something/:id' => 'something#show', as: :something
end
(このケースである:この-ある-素晴らしい)を使用して:のparams [: (コントローラコードを参照)
多くのシナリオに基づいてページに動的に表示されるエントリrは、私が言及したようにリソースパスをハードコードできません:( –
あなたは確かに可能です。 :id'は変数です。ルート内に変数を持つルートだけを定義することができますファイルを呼び出し、lile: 'my_magic_path(:variable_1、:some_other_attribute)というパスを呼び出します。 – b1nary