【发布时间】:2015-05-31 07:18:00
【问题描述】:
我正在尝试接收来自 Celeb 模型的参数并将正确的参数委托给用户:
class Celeb < ActiveRecord::Base
has_one :user, as: :role, dependent: :destroy
delegate :name, :username, :email, :password, :password_confirmation, :name=, :username=, :email=, :password=, :password_confirmation=, to: :user
end
在控制器中:
def create
@celeb = mount_celeb()
@celeb.assign_attributes celeb_params
...
end
def celeb_params
params.require(:celeb).permit(:email, :username, :name, :password, :password_confirmation)
end
def mount_celeb
celeb = Celeb.new
celeb.build_user
celeb
end
但是关联的用户仍然是空的,没有分配任何字段。有没有办法使用强参数来实现这一点?
【问题讨论】:
-
我看不出它为什么会失败,你确定你在控制器中收到了正确的参数吗?
-
这是我的错,我正在用 byebug 进行调试,但它失败了,但在实际请求中它有效,只需要刷新即可解决问题。
标签: ruby-on-rails ruby-on-rails-4 activerecord strong-parameters