使用strong_params在Rails 4控制器中创建两个对象

tvalent2

在我的Rails 4 Controller操作中,我传递了以下参数:

{"user"=>{"email"=>"", "password"=>"[FILTERED]", "profile"=>{"birthday"=>nil, "gender"=>nil, "location"=>"", "name"=>""}}}

现在,从这些参数中,我希望创建两个对象:User及其Profile

我尝试了以下代码的迭代,但是无法解决strong_params问题:

def create
  user = User.new(user_params)
  profile = user.build_profile(profile_params)

  ...
end

  private

    def user_params
      params.require(:user).permit(:email, :password)
    end

    def profile_params
      params[:user].require(:profile).permit(:name, :birthday, :gender, :location)
    end

由于上面的代码引发了Unpermitted parameters: profile错误,我想知道该profile_params方法是否曾经被击中。它几乎感觉就像我需要需要profileuser_params并处理。我也尝试过,将strong_params方法更改为:

def create
  user = User.new(user_params)
  profile_params = user_params.delete(:profile)
  profile = user.build_profile(profile_params)

  ...
end

private

  def user_params
    params.require(:user).permit(:email, :password, profile: [:name, :birthday, :gender, :location])
  end

但是我明白了 ActiveRecord::AssociationTypeMismatch - Profile(#70250830079180) expected, got ActionController::Parameters(#70250792292140):

谁能对此有所启发?

马塞洛·德·波利(Marcelo De Polli)

试试这个:

user = User.new(user_params.except(:profile))
profile = user.build_profile(user_params[:profile])

您还可以使用Rails的嵌套属性在这种情况下,配置文件参数将嵌套在key中:profile_attributes

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用strong_params在Rails 4控制器中创建两个对象

来自分类Dev

您如何使用“创建!” 与strong_params?

来自分类Dev

使用strong_params将JSON数组保存到Rails的数据库中

来自分类Dev

Rails 4:strong_params,nested_attributes_for和belongs_to关联麻烦

来自分类Dev

通过Rails中的两个不同的控制器创建联接表记录

来自分类Dev

通过Rails中的两个不同的控制器创建联接表记录

来自分类Dev

ASP.Net使用一个控制器创建两个模型

来自分类Dev

如何在Rails控制器上将两个json对象呈现为响应

来自分类Dev

从Rails上的注释控制器ruby创建两个模型的注释

来自分类Dev

从控制器获取两个对象列表以使用json和javascript查看

来自分类Dev

在Swift中使用两个View控制器连接对象

来自分类Dev

在Laravel中使用相同的控制器方法创建两个关系

来自分类Dev

ActiveModel :: ForbiddenAttributesError为什么Rails会忽略Strong_params?

来自分类Dev

Rails params 属性 - 使用控制器中的 params 字段

来自分类Dev

在Rails中的两个控制器之间传递数据

来自分类Dev

我可以在 rails 的单个页面中呈现两个不同的控制器操作吗

来自分类Dev

在两个控制器中使用输入变量

来自分类Dev

在AngularJS中的两个地方使用相同的控制器

来自分类Dev

Laravel:在控制器中同时使用两个请求

来自分类Dev

使用Autofac在两个控制器中获得不同的接口

来自分类Dev

使用Code Igniter在控制器中调用两个模型

来自分类Dev

为什么在Angular JS中不能使用两个控制器?

来自分类Dev

在保存rails 4之前在另一个控制器中调用对象

来自分类Dev

如何在不单独调用angularjs的情况下在两个控制器中使用单个JSON对象?

来自分类Dev

使用一个控制器和一个视图在两个表中插入数据

来自分类Dev

CSS和JS无法在Rails的一个控制器ruby中以两个动作加载

来自分类Dev

我可以使用一个控制器来更新AngularJS中的两个视图吗?

来自分类Dev

仅使用一个控制器将两个图像保存在不同的文件夹中

来自分类Dev

如何使用MVC4 Web API控制器调用两个以上的Get方法

Related 相关文章

  1. 1

    使用strong_params在Rails 4控制器中创建两个对象

  2. 2

    您如何使用“创建!” 与strong_params?

  3. 3

    使用strong_params将JSON数组保存到Rails的数据库中

  4. 4

    Rails 4:strong_params,nested_attributes_for和belongs_to关联麻烦

  5. 5

    通过Rails中的两个不同的控制器创建联接表记录

  6. 6

    通过Rails中的两个不同的控制器创建联接表记录

  7. 7

    ASP.Net使用一个控制器创建两个模型

  8. 8

    如何在Rails控制器上将两个json对象呈现为响应

  9. 9

    从Rails上的注释控制器ruby创建两个模型的注释

  10. 10

    从控制器获取两个对象列表以使用json和javascript查看

  11. 11

    在Swift中使用两个View控制器连接对象

  12. 12

    在Laravel中使用相同的控制器方法创建两个关系

  13. 13

    ActiveModel :: ForbiddenAttributesError为什么Rails会忽略Strong_params?

  14. 14

    Rails params 属性 - 使用控制器中的 params 字段

  15. 15

    在Rails中的两个控制器之间传递数据

  16. 16

    我可以在 rails 的单个页面中呈现两个不同的控制器操作吗

  17. 17

    在两个控制器中使用输入变量

  18. 18

    在AngularJS中的两个地方使用相同的控制器

  19. 19

    Laravel:在控制器中同时使用两个请求

  20. 20

    使用Autofac在两个控制器中获得不同的接口

  21. 21

    使用Code Igniter在控制器中调用两个模型

  22. 22

    为什么在Angular JS中不能使用两个控制器?

  23. 23

    在保存rails 4之前在另一个控制器中调用对象

  24. 24

    如何在不单独调用angularjs的情况下在两个控制器中使用单个JSON对象?

  25. 25

    使用一个控制器和一个视图在两个表中插入数据

  26. 26

    CSS和JS无法在Rails的一个控制器ruby中以两个动作加载

  27. 27

    我可以使用一个控制器来更新AngularJS中的两个视图吗?

  28. 28

    仅使用一个控制器将两个图像保存在不同的文件夹中

  29. 29

    如何使用MVC4 Web API控制器调用两个以上的Get方法

热门标签

归档