Rails5,嵌套形式的不允许的参数,同时关联现有对象

尤利乌斯

为什么为什么为什么……?

三种模式(FirstModelSecondModelJoinedModel),JoinedModel属于他人和其他两人双双has_many对方,通过JoinedModelJoinedModel accepts_nested_attributes_forfirst_model 和second_model

它还验证first_model_id和 的存在second_model_id

加入模型强参数:

private
 def joined_params
   params.require(:joined_model).permit(:first_model_id, :second_model_id,
                  :first_models_attributes => [:id, :name],
                  :second_models_attributes => [:id, :full_name])
 end

JoinedModel 的 _form:

<%= form_for(joined_model) do |f| %>
 <%= f.fields_for :second_models do |ff| %>
  <%= ff.select(SecondModel.all.map {|c| [ c.full_name, c.id ] }, { include_blank: true }) -%>

(与f.fields_forFirstModel相同

当我提交此表格时,我得到

不允许的参数 first_models, second_models

并查询:

参数:{"utf8"=>"✓", "authenticity_token"=>"gvW/OrOXJruAK0ZD+uoajJ4N+dZvpmZF8Ay0TOKF9HPO19d4tRBoWz0C4VoaOABYat8KzrryL8lp5ax+Y9ZJR"="model="{model_first"="model="{model_first"="model_first "}, "second_models"=>{"second_model_id"=>"1"}}, "commit"=>"创建连接模型"}

我不知道为什么,等表单尝试发送哈希 -"second_models"=>{"second_model_id"=>"1"}它应该"second_model_id"=>"1"就像这样,如果我的表单使用 simplef.number_field :first_model_id而不是select......

尤利乌斯

我找到了答案并将离开这篇文章,因为在 StackOverflow 上发现了许多类似的未回答的问题

因此,答案是使用 parent 的字段构建器 for select,例如:

<%= form_for(joined_model) do |f| %>
 <%= f.fields_for :second_models do |ff| %>
  <%= f.select(SecondModel.all.map {|c| [ c.full_name, c.id ] }, { include_blank: true }) -%>

看起来现在一切正常,但如果有人知道为什么我什至需要|ff|为嵌套字段提供构建器对象(在我的情况下),如果我什至不使用它,我将给你一个嗨五和一个探戈舞!

更新:

所以我发现在这种情况下我什至不需要fields_for......现在这一切都有意义,因为在这里我正在创建一个新的 JoinedModel 的记录并且只选择其他两个(现有的)记录和关联只是让我抓住这些方法..有点la脚,但是哦...

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HABTM关联:不允许的参数

来自分类Dev

为什么我在使用嵌套表单的Rails中出现不允许的参数错误?

来自分类Dev

Rails 4不允许的参数

来自分类Dev

嵌套形式多对多关系的不允许参数Rails 4

来自分类Dev

Rails 4中与嵌套表单的多对多关系-不允许的参数错误

来自分类Dev

Rails 4-不允许的参数-无法保存深度嵌套的属性表格

来自分类Dev

使用嵌套表单和回形针gem的Rails不允许的参数

来自分类Dev

具有has_one关系的两层深度嵌套形式的不允许的参数

来自分类Dev

不允许请求来源:使用Rails5和ActionCable时的http:// localhost:3001

来自分类Dev

Rails中带有散列的不允许的参数

来自分类Dev

如何保存has_one关联的嵌套资源?不允许的参数错误

来自分类Dev

Rails 4:不允许的参数

来自分类Dev

Rails:Rails 5中不允许的参数

来自分类Dev

不允许有角形式的空格

来自分类Dev

不允许的参数:Rails 5.2

来自分类Dev

带有x-amz-server-side-encryption策略的AWS S3存储桶中的问题不允许rails5上传图像,但允许rails4

来自分类Dev

带Devise的Rails 4.0。嵌套属性不允许的参数

来自分类Dev

rails 4不允许的参数嵌套形式

来自分类Dev

Rails 4不允许的参数

来自分类Dev

嵌套形式多对多关系的不允许参数Rails 4

来自分类Dev

Rails 4中与嵌套表单的多对多关系-不允许的参数错误

来自分类Dev

Rails 4嵌套强参数抛出不允许的参数错误

来自分类Dev

具有has_one关系的两层深度嵌套形式的不允许的参数

来自分类Dev

Rails:使用嵌套属性的不允许的参数

来自分类Dev

ActiveAdmin上不允许的参数有很多:通过关联

来自分类Dev

Rails 不允许的参数

来自分类Dev

Rails API 嵌套属性中不允许使用的参数

来自分类Dev

不允许的参数:嵌套形式的 student_ids

来自分类Dev

不允许的参数 ActiveAdmin 设计 Rails

Related 相关文章

  1. 1

    HABTM关联:不允许的参数

  2. 2

    为什么我在使用嵌套表单的Rails中出现不允许的参数错误?

  3. 3

    Rails 4不允许的参数

  4. 4

    嵌套形式多对多关系的不允许参数Rails 4

  5. 5

    Rails 4中与嵌套表单的多对多关系-不允许的参数错误

  6. 6

    Rails 4-不允许的参数-无法保存深度嵌套的属性表格

  7. 7

    使用嵌套表单和回形针gem的Rails不允许的参数

  8. 8

    具有has_one关系的两层深度嵌套形式的不允许的参数

  9. 9

    不允许请求来源:使用Rails5和ActionCable时的http:// localhost:3001

  10. 10

    Rails中带有散列的不允许的参数

  11. 11

    如何保存has_one关联的嵌套资源?不允许的参数错误

  12. 12

    Rails 4:不允许的参数

  13. 13

    Rails:Rails 5中不允许的参数

  14. 14

    不允许有角形式的空格

  15. 15

    不允许的参数:Rails 5.2

  16. 16

    带有x-amz-server-side-encryption策略的AWS S3存储桶中的问题不允许rails5上传图像,但允许rails4

  17. 17

    带Devise的Rails 4.0。嵌套属性不允许的参数

  18. 18

    rails 4不允许的参数嵌套形式

  19. 19

    Rails 4不允许的参数

  20. 20

    嵌套形式多对多关系的不允许参数Rails 4

  21. 21

    Rails 4中与嵌套表单的多对多关系-不允许的参数错误

  22. 22

    Rails 4嵌套强参数抛出不允许的参数错误

  23. 23

    具有has_one关系的两层深度嵌套形式的不允许的参数

  24. 24

    Rails:使用嵌套属性的不允许的参数

  25. 25

    ActiveAdmin上不允许的参数有很多:通过关联

  26. 26

    Rails 不允许的参数

  27. 27

    Rails API 嵌套属性中不允许使用的参数

  28. 28

    不允许的参数:嵌套形式的 student_ids

  29. 29

    不允许的参数 ActiveAdmin 设计 Rails

热门标签

归档