如何获得我的" show"要渲染的页面?

时间:2018-01-16 22:14:34

标签: ruby-on-rails http-status-code-404 ruby-on-rails-5 rails-routing

我安装了Rails 5。我无法让我的节目页面呈现。我的佣金路线有这个

votes_show GET /votes/show(.:format)投票#show

然后在我的app / controllers / votes_controller.rb文件中我有

  def show
    id = params[:id]
    # If there is no person selected based on the param, choose one randomly
    if !id.present?
      @person = Person.order("RANDOM()").limit(1).first
    else
      @person = Person.find(:id => params[:id])
    end

但是当我去http://localhost:3000/votes/1时,我得到了一个

No route matches [GET] "/votes/1"

错误。我错过了一些非常明显的东西。它是什么?

1 个答案:

答案 0 :(得分:0)

votes_show GET /votes/show(.:format) votes#show

此行告诉我们“当您看到/votes/show的路线时,请转到VotesController#show方法。”

当您输入/votes/1时,rails正在检查路由,而不是查找看起来像这样的路径...它专门为{{1} 查找 }

如评论中所述,您必须添加如下行:

/votes/show

或更好,使用资源丰富的路线,如

get '/votes/:id(.:format)', to: 'votes#show'