ruby-on-rails – Ruby错误:“符号作为数组索引”
发布时间:2020-12-17 03:12:05 所属栏目:百科 来源:网络整理
导读:我正在为控制器的create方法编写一个规范: describe "POST create" do it "should create an adtag with valid params" do campaign = Campaign.make campaign_attributes = Hash.new campaign_attributes[:adtag_attributes] = Hash.new campaign_attribut
我正在为控制器的create方法编写一个规范:
describe "POST create" do it "should create an adtag with valid params" do campaign = Campaign.make campaign_attributes = Hash.new campaign_attributes[:adtag_attributes] = Hash.new campaign_attributes[:adtag_attributes][:code] = "<h1>Sample code</h1>" post 'create',{ :id => campaign.id,:campaign => campaign_attributes } end end 但是当我运行它时,我在控制器中收到错误“Symbol as array index”,当它尝试处理这段代码时: params[:campaign][:adtag_attributes].each_with_index do |attributes,index| # some code end 任何的想法 ? 编辑1: 我没有编写控制器,但它适用于手动测试. fields_for 'campaign[adtag_attributes][]',adtag do |adtag_form| 也许我的规格不好? 编辑2: 由于Rishav的回答,问题解决了.我不明白,在视图中,广告系列[adtag_attributes] []表示广告系列[adtag_attributes]是一个数组. 所以我只是换了 campaign_attributes = Hash.new campaign_attributes[:adtag_attributes] = Hash.new campaign_attributes[:adtag_attributes][:code] = "<h1>Sample code</h1>" 通过 campaign_attributes = Hash.new campaign_attributes[:adtag_attributes] = Array.new campaign_attributes[:adtag_attributes] << { :code => "<h1>Sample code</h1>" } 它成功了. 解决方法
params [:campaign] [:adtag_attributes]是一个哈希而不是一个数组,所以当它在哈希上运行“each_with_index”方法时,它会看到“:code”符号作为索引并抛出该错误.
你可以这样做 params[:campaign][:adtag_attributes].each do |key,value| #some code end 只需在测试中更改为以下内容 ??params [:campaign] [:adtag_attributes] = []??params [:campaign] [:adtag_attributes]<<一些数据 希望这有效 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 如何使用StructureMap在代码中删除ObjectFactory
- vue中mint-ui的使用方法
- 基于github Issues的博客评论系统
- oracle--not in查不到应有的结果(NULL、IN、EXISTS详解)
- ruby-on-rails – rake db:create vs rake db:create:al
- PostgreSQL INSERT ON CONFLICT UPDATE(upsert)使用所有排除
- C语言小写转大写,小写字母转换成大写字母
- postgresql – 尽管用户名正确,但连接到Azure postgres服务
- Swift3.0语言教程使用编码创建和初始化字符串
- react-native 之 ref 的使用