我正在使用典型的用户模型构建一个简单的Web应用程序。档案模型。用户模型has_one profile&配置文件模型belongs_to用户。一切都很顺利,因为我基本上都遵循Michael Hartl的教程(除了他使用has_many进行微博)。
所以这是交易。我创建一个用户,然后创建一个配置文件。我知道两个记录都存在b / c我在我的sqlite3数据库浏览器中验证它们的存在。但是,只要我尝试通过访问 - >渲染节目视图localhost / 3000 / profiles / 1,我收到如下所示的错误。但更奇怪的部分是现在当我检查我的数据库时,配置文件记录消失了。请帮忙!
注意:我觉得它与依赖性破坏有关(b / c删除它会消除这个问题),但我不知道为什么。此外,我想我还是想要依赖摧毁。如果没有相应的用户,我不想要任何流浪档案记录,对吗?
路线
resources :users
resources :profiles
模型
class User < ActiveRecord::Base
has_one :profile, dependent: :destroy
class Profile < ActiveRecord::Base
belongs_to :user
ProfilesController
def new
@profile = current_user.build_profile
end
def create
@profile = current_user.build_profile(params[:profile])
if @profile.save
flash[:success] = "Profile created!"
redirect_to root_path
else
render 'new'
end
end
def show
@profile = Profile.find(params[:id])
end
视图/简档/ show.html.erb
<p>Display Name: <%= @profile.display_name %></p>
这是我尝试访问时收到的错误消息 - &gt;本地主机/ 3000 /简档/ 1
ActiveRecord::RecordNotFound in ProfilesController#show
Couldn't find Profile without an ID