未初始化的常量ProfileController - 一对一关联

时间:2018-01-23 21:27:26

标签: ruby-on-rails routes

我知道有几个这样的问题,但我找不到我的情况。我也检查了该网站:https://github.com/bitmakerlabs/debugging-guide/wiki/Rails-error:-Routing-Error:-uninitialized-constant 它看起来应该工作。找不到问题出在哪里。

错误看起来像:

  

未初始化的常量ProfileController

在我的app / controllers文件夹中,我有profiles_controller.rb文件:

class ProfilesController < ApplicationController
  # GET to /users/:user_id/profile/new
  def new
    # Render blank profile details form
  end
end

我在app / views / profiles / new.html.erb下有一个视图文件,并使用<%= link_to "Create your profile!", new_user_profile_path(user_id: current_user.id) if user_signed_in? %>链接到该文件。在我的路线中,我有:

  

new_user_profile_path GET /users/:user_id/profile/new(.:format)
  轮廓#新

你能指导我一个错误吗?我能找到的每个答案都与命名有关,而我看起来很好(profiles_controller.rb和ProfilesController类)。我错过了一些明显的东西吗

编辑:

我的routes.rb文件摘要:

resources :users do
  resources :profile
end

编辑2:

在我的项目中,一个用户可能只有一个配置文件。路由... user / profile / ...比... user / profiles /...

更有意义

2 个答案:

答案 0 :(得分:1)

您需要更改路线的名称。

的routes.rb

profiles#new

答案 1 :(得分:0)

还有另一种方法可以解决这个问题。因为每个用户在route.rb中都有一个配置文件(该关联在我的项目中,但我没有提及它,因为我认为它不相关)而不是将“配置文件”更改为“配置文件”,这足以改变“资源:配置文件“进入”资源:配置文件“。这样我以后的路线就有了user / profile / ...这更有意义。