你正在做的是真正的rails链接的反模式。要在 rails 中生成链接,请使用相应的..._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](请参阅控制器代码)