【发布时间】:2016-02-16 22:02:04
【问题描述】:
背景:
我有两个模型User(设计模型)和Client。我已经设置了 Client belongs_to :user 和 User has_one :client 这样的关联。我已经设置了我的数据库,以便客户端表具有user_id 属性
问题:
在我的导航栏中,一旦用户登录,我希望他们能够访问由Client 模型表示的“个人资料”,但是我似乎无法通过user_params 访问正确的客户端。例如<%= link_to "My Profile", client_path(@user) %>
这会导致错误 No route matches {:action=>"show", :controller=>"clients", :id=>nil} missing required keys: [:id],即使 :id 在用户登录后应该可用。
我已编辑设计 sessions_controller 以包含:
def configure_sign_in_params
devise_parameter_sanitizer.permit(:sign_up) do |user_params|
user_params.permit( :email, :password, :id)
end
end
...但仍然没有运气。我觉得我缺少一些基本的东西,我只是需要一些帮助。
【问题讨论】:
-
当调用
client_path(@user)时,@user是nil。你在你的控制器里设置了吗?也许您打算使用client_path(current_user)? -
您的
routes.rb文件与用户和客户有关吗?在您的代码 sn-p 中,@user在控制器中设置为什么? -
MrYoshi 你是对的!谢谢,那真是个愚蠢的错误-_-。我需要复习我的设计知识
标签: ruby-on-rails devise associations strong-parameters