【发布时间】:2014-12-29 14:58:00
【问题描述】:
我在尝试链接我的User 表和我的Room 表中的:username 时遇到错误。我使用设计进行了自定义身份验证并添加了:username。
我希望username 成为设计中的User 表和我的Room 表之间的链接。
我正在尝试构建这个应用程序来重新创建一种 airbnb,但主要是作为我几个月前开始使用 ruby 编程时的练习。
我得到错误:
ActiveRecord::RecordNotFound in RoomsController#new
Couldn't find User without an ID
line #19 @room.username = User.find(params[:username])
非常感谢您的帮助。我现在被困在这里几个小时了:-(
rooms_controller
def new
@room = Room.new
@room.username = User.find(params[:username]) #error seems to come from here
end
routes.rb
Rails.application.routes.draw do
devise_for :users
get "home/info"
root :to => "home#info"
resources :rooms
resources :users do
resources :rooms
end
room.rb
class Room < ActiveRecord::Base
mount_uploader :photo, PictureUploader
belongs_to :user
validates_presence_of :username, :location, :description, :capacity, :price_day, :photo
end
user.rb
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates_presence_of :username
validates_uniqueness_of :username
has_many :rooms
end
【问题讨论】:
标签: ruby-on-rails ruby activerecord devise params