我收到了「ProjectsController#創建NoMethodError」使用下面的代碼:未定義的方法在軌「建設」 3
def create
@project = current_user.project.build(params[:project])
if @project.save
flash[:success] = "Project created!"
redirect_to root_url
end
end
我一直在使用@project = current_user.project.create(params[:project])
也試過,但我得到了同樣的錯誤,儘管爲.create
。
我的項目模式是這樣的:
class Project < ActiveRecord::Base
attr_accessible :title,
:sub_title,
:desc,
:category
validates :user_id, presence: true
validates :title, presence: true, length: { maximum: 35 }
validates :category, presence: true
belongs_to :user
...
end
和我的用戶模型是這樣的:
class User < ActiveRecord::Base
attr_accessible :name,
:surname,
:email,
:email_confirmation,
:password,
:password_confirmation
has_secure_password
has_one :project
...
end
從我所知,這應該創建一個新的項目,把一個關聯到user.id
和project.user_id
。任何想法爲什麼我得到的錯誤,而不是成功的創造?你想
這是否說未定義的方法構建用戶:類? –