Rails 4的嵌套属性不会创建has_many模型

亚当

我是Rails的新手,在此上花了太多时间。预先非常感谢您的帮助!

我似乎无法让fields_for和/或accepts_nested_attributes_for用于嵌套属性。我有一个has_many收缩的smash_client和一个试图创建带有参数的smash_client的表单,同时它还尝试在合同对象上设置参数。合约belongs_tosmash_client。我尝试了很多不同的解决方案,并阅读了文档,但是仍然缺少一些东西。我在smash_clients_controller.rb的params哈希中得到了这个

..., "smash_client"=>{"name"=>"fasdf", "user"=>"adam"}, "smash_client_id"=>{"instance_type"=>"spot"},...

= form_for @smash_client do |f|
  .field
    = f.label :name
    = f.text_field :name
  .field
    = fields_for :smash_client_id do |c|
      %p
        = c.radio_button :instance_type, 'spot'
        = c.label :instance_type, 'spot'
        = c.radio_button :instance_type, 'on_demand'
        = c.label :instance_type, 'on demand'

  .actions
    = f.submit 'Save'

class SmashClient < ActiveRecord::Base
  has_many :contracts, dependent: :destroy
  accepts_nested_attributes_for :contracts, allow_destroy: true, 
    reject_if: proc { |attributes| attributes[:instance_type].blank? }
...  
  def new
    @smash_client = SmashClient.new
    3.times { @smash_client.contracts.build }
  end
...
  def smash_client_params
    @smash_client_params = params.require(:smash_client).
      permit( :user, :name, contracts_attributes: [:instance_type] )
  end
end

class Contract < ActiveRecord::Base
  belongs_to :smash_client
  after_create :determine_instance_type_and_start
  before_destroy :stop_instances
...
end

我认为如果对它们进行硬编码,则嵌套的参数将起作用,因为如果在控制台中尝试类似的操作,则不会出现错误,并且会得到新的SmashClient和Contract。

smash_client_params = {name: 'something', user: 'blah', contracts_attributes: [{instance_type: 'spot'}]}
SmashClient.create( smash_client_params )

我在本fields_for节中尝试使用:contracts,@ smash_client.contracts和其他一些东西还尝试使用select和collection_select,但是我似乎无法确定表单。抱歉,很长的帖子。希望我得到了所有有用的信息,而没有其他问题。我非常感谢您的指导或回答。提前致谢。

亚当

我终于找到了。:instance_type曾在列入白名单Contract模型。再次感谢kalyani。感谢您的帮助。这是对上面代码的更改:

.field
  = fields_for :contracts do |c|
    = c.label :instance_type, 'spot instance'
    = c.radio_button :instance_type, 'spot', checked: true
    = c.label :instance_type, 'on demand instance'
    = c.radio_button :instance_type, 'on_demand'

def contract_params
  params.require(:contract).
    permit(:id, :name, :instance_id, :smash_client_id, :instance_type)
end

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4 has_many:through关系:在从父模型创建动作时分配默认值以加入模型属性

来自分类Dev

使用JavaScript的无限嵌套模型的has_many的Rails嵌套属性form_for

来自分类Dev

Rails 4嵌套属性和has_many:通过关联形式

来自分类Dev

Rails 4具有simple_form_for,has_many和嵌套属性

来自分类Dev

嵌套属性has_many通过rails 4的表单助手

来自分类Dev

Rails has_many嵌套属性+回形针gem

来自分类Dev

关于has_many关联的委托属性的Rails 4查询

来自分类Dev

通过关联和嵌套模型形式使用has_many选择rails4集合

来自分类Dev

Rails 4:通过has_many关联创建新记录

来自分类Dev

rails模型has_many本身

来自分类Dev

has_many的嵌套查询:通过rails

来自分类Dev

has_many属性上的Rails验证

来自分类Dev

Ruby on Rails /依靠自嵌套模型(has_many / belongs_to)

来自分类Dev

Rails4:使用has_many保存对象在has_many模型验证器上失败

来自分类Dev

Rails 4 has_many通过:从父模型编辑视图更新联接模型

来自分类Dev

has_many / :through rails4

来自分类Dev

Rails 4 has_many通过许多

来自分类Dev

has_many /:通过rails4

来自分类Dev

Rails 4 has_many问题

来自分类Dev

has_many /:通过rails4

来自分类Dev

无法在关联模型的Active Admin索引属性中显示(belongs_to / has_many)-Rails 3.2

来自分类Dev

Rails 4:在创建模型时能够选择一个模型的多个实例,它具有has_many:through关系,与

来自分类Dev

Rails:同时创建模型和联接表,has_many通过

来自分类Dev

绝对坚持尝试通过has_many通过rails形式创建嵌套关联

来自分类Dev

Rails 4活动记录模型has_many通过关联吗?

来自分类Dev

rails 4 has_many对于相同模型的不同实例的工作方式不同

来自分类Dev

Rails 4活动记录模型has_many通过关联吗?

来自分类Dev

has_many通过关系可以在Rails中使用4个模型吗?

来自分类Dev

Rails4:如何在许多has_many模型中显示数据

Related 相关文章

  1. 1

    Rails 4 has_many:through关系:在从父模型创建动作时分配默认值以加入模型属性

  2. 2

    使用JavaScript的无限嵌套模型的has_many的Rails嵌套属性form_for

  3. 3

    Rails 4嵌套属性和has_many:通过关联形式

  4. 4

    Rails 4具有simple_form_for,has_many和嵌套属性

  5. 5

    嵌套属性has_many通过rails 4的表单助手

  6. 6

    Rails has_many嵌套属性+回形针gem

  7. 7

    关于has_many关联的委托属性的Rails 4查询

  8. 8

    通过关联和嵌套模型形式使用has_many选择rails4集合

  9. 9

    Rails 4:通过has_many关联创建新记录

  10. 10

    rails模型has_many本身

  11. 11

    has_many的嵌套查询:通过rails

  12. 12

    has_many属性上的Rails验证

  13. 13

    Ruby on Rails /依靠自嵌套模型(has_many / belongs_to)

  14. 14

    Rails4:使用has_many保存对象在has_many模型验证器上失败

  15. 15

    Rails 4 has_many通过:从父模型编辑视图更新联接模型

  16. 16

    has_many / :through rails4

  17. 17

    Rails 4 has_many通过许多

  18. 18

    has_many /:通过rails4

  19. 19

    Rails 4 has_many问题

  20. 20

    has_many /:通过rails4

  21. 21

    无法在关联模型的Active Admin索引属性中显示(belongs_to / has_many)-Rails 3.2

  22. 22

    Rails 4:在创建模型时能够选择一个模型的多个实例,它具有has_many:through关系,与

  23. 23

    Rails:同时创建模型和联接表,has_many通过

  24. 24

    绝对坚持尝试通过has_many通过rails形式创建嵌套关联

  25. 25

    Rails 4活动记录模型has_many通过关联吗?

  26. 26

    rails 4 has_many对于相同模型的不同实例的工作方式不同

  27. 27

    Rails 4活动记录模型has_many通过关联吗?

  28. 28

    has_many通过关系可以在Rails中使用4个模型吗?

  29. 29

    Rails4:如何在许多has_many模型中显示数据

热门标签

归档