Ты близок. Форматирование словаря параметров не выглядит корректным. Вы должны попробовать следующее:
let parameters: [String: AnyObject] = [
"IdQuiz" : 102,
"IdUser" : "iosclient",
"User" : "iosclient",
"List": [
[
"IdQuestion" : 5,
"IdProposition": 2,
"Time" : 32
],
[
"IdQuestion" : 4,
"IdProposition": 3,
"Time" : 9
]
]
]
Alamofire.request(.POST, "http://myserver.com", parameters: parameters, encoding: .JSON)
.responseJSON { request, response, JSON, error in
print(response)
print(JSON)
print(error)
}
Надеюсь, что исправил вашу проблему. Если это не так, ответьте, и я соответствующим образом отрегулирую свой ответ.
Как обсуждалось в чате, вам нужно использовать что-то вроде:
config[:projects].each do |project|
todos = project[:todos]
project.delete(:todos)
new_project = Project.create(project)
todos.each do |todo|
new_project.todos.create(todo)
end
end
. Предполагается, что ваш YML отформатирован правильно.
class Project < ApplicationRecord
has_many :todos
accepts_nested_attributes_for :todos
end
Project.create!(title: 'family',
todos_attributes:[{text:'1',isCompleted:false},
{text:'2',isCompleted:false},...])
Если вы имеете , чтобы использовать YAML, вам нужно будет прочитать YAML, а затем превратить его в что-то, что рельсы могут создавать сущности из. Поместите это в файл семени:
yaml_hash = YAML.load(File.read('db/your_yaml.yaml'))
rails_arr_of_hashes = yaml_hash['projects'].map{|p| {title: p['title'], todos_attributes: p['todos'] }
Project.create(rails_arr_of_hashes)
поместить ваш YAML в db / your_yaml.yaml, а затем запустите
rails db:seed
Не забудьте добавить accepts_nested_attributes_for :todos
в модель проекта.
Удачи в обучении Rails :)
TypeError: no implicit conversion of String into Integer /Users/Aldres/Desktop/tasktracker/db/seeds.rb:10:in
[] '/Users/Aldres/Desktop/tasktracker/db/seeds.rb:10:in <top (required)>'
Строка 10 - rails_arr_of_hashes = yaml_hash['projects'].map{|p| {title: p['title'], todos_attributes: p['todos'] }}
– Aldres
14 July 2018 в 00:01
todos
в файле yaml, вы можете использовать gsub, чтобы изменить его на todos_attributes
до i>, загружая файл как YAML вместо итерации по хэшу < я> после I>. YAML.load(File.read('projects.yml').gsub(/\:todos\:/, ':todos_attributes:'))
– BM5k
14 July 2018 в 01:03