あなたがやっていることは、実際にはレールリンクのアンチパターンです。レールでリンクを生成するには、対応..._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="/users/new">New User</a>
動的ルートがある場合は、次のようにルートを定義できます。
# config/routes.rb
Rails.application.routes.draw do
get '/something/:id' => 'something#show', as: :something
end
次に、コントローラーで:
# app/controllers/something_controller.rb
class SomethingController < ApplicationController
def show
puts params[:id]
end
end
/something/this-is-awesome
にアクセスすると、次を使用して渡された値 (この場合は this-is-awesome) にアクセスできます: params[:id] (コントローラ コードを参照)