我正在构建一个具有典型用户模型和配置文件模型的简单应用程序。用户 has_one Profile 和 Profile belongs_to User。一切似乎都运行良好,因为我基本上遵循 Michael Hartl 教程。但是,当我尝试从配置文件表(显示操作)呈现某些内容的视图时,我收到一个错误(没有 id)并且我创建的配置文件记录被删除!
问题:
在我的 ProfilesController 中,我是否为我尝试渲染的简单视图正确定义了我的显示操作?
为什么简单地访问 url 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 dude!"
redirect_to root_path
else
render 'new'
end
end
def show
@profile = Profile.find(params[:user_id])
end
查看 (profiles/show.html.erb)
<p>Display Name: <%= @profile.display_name %></p>