Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 多个复选框不工作轨道4_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 多个复选框不工作轨道4

Ruby on rails 多个复选框不工作轨道4,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我使用的是Rails 4.1.6 我试图创造能力,选择至少3个服务,然后与广告保存 模型结构如下: class Service < ActiveRecord::Base belongs_to :advertisement end class Advertisement < ActiveRecord::Base has_many :services end 但在控制台中,我检查: 2.1.3 :008 >t = Advertisement.last (ALL OK

我使用的是Rails 4.1.6

我试图创造能力,选择至少3个服务,然后与广告保存

模型结构如下:

class Service < ActiveRecord::Base
  belongs_to :advertisement
end

class Advertisement < ActiveRecord::Base
   has_many :services
end 
但在控制台中,我检查:

2.1.3 :008 >t = Advertisement.last (ALL OK)
....
    2.1.3 :008 > t.services

 => #<ActiveRecord::Associations::CollectionProxy []> 
2.1.3:008>t=advision.last(全部正常)
....
2.1.3:008>t.services
=> # 
这是一个错误。联想中的问题,但在我看来一切都很好

有什么问题吗?
谢谢在
广告参数中没有
服务ID
。添加它们:

@advertisement = Advertisement.new(advertisement_params.merge(service_ids: params[:service_ids]))
# or
@advertisement = Advertisement.new(advertisement_params)
@advertisement.service_ids = service_ids

错误在哪里?最后一个代码块没有问题。你是如何在广告上保存服务的?你是否允许在
advision\u params
方法中使用服务ID,或者在你的控制器中使用任何你称之为服务ID的方法?@japped I Have:service\u id你需要复数,并告诉它需要一个数组-
params.require(:advision.permit(服务ID:[])
您是这样定义的吗?@EdgarsRozenfelds:您需要显示完整的表单、控制器和模型(如果使用嵌套属性)代码,很难理解您当前发布的代码到底想做什么。
Parameters: ... "service_ids"=>["1", "2", "3"] ...
2.1.3 :008 >t = Advertisement.last (ALL OK)
....
    2.1.3 :008 > t.services

 => #<ActiveRecord::Associations::CollectionProxy []> 
@advertisement = Advertisement.new(advertisement_params.merge(service_ids: params[:service_ids]))
# or
@advertisement = Advertisement.new(advertisement_params)
@advertisement.service_ids = service_ids