Rob*_*Rob 3 ruby-on-rails params ruby-on-rails-4
我希望 url 结构是 'actors/joe-blogs' 而不是 'actors/1',但是由于 id 不在 url 中,我无法通过名称查找参数而不是通过 id 查找。
我有以下路线
get 'actors/:name' => 'actors#show'
Run Code Online (Sandbox Code Playgroud)
演员表
| id | name |
------------------
| 1 | Joe Blogs |
Run Code Online (Sandbox Code Playgroud)
url /actors/joe-blogs 工作正常,但按名称而不是 id 查找参数不起作用。
演员控制器:
def show
@actor = Actor.find(params[:name])
end
Run Code Online (Sandbox Code Playgroud)
按 params 名称查找会{"name"=>"joe-blogs"} 寻找演员,而不是寻找演员{"name"=>"Joe Blogs"}
我怎样才能让参数工作以便它抓住{"name"=>"Joe Blogs"}?名称之间没有“-”?
你应该使用find_by而不是find.
def show
@actor = Actor.find_by(name: params[:name])
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2934 次 |
| 最近记录: |