
Fedor
10.07.2017
08:39:37
я сейчас у себя посмотрел:
= f.fields_for :typical_mistakes do |tmf|
= tmf.text_field :title
= tmf.text_field :wrong_answer
params.require(:task).permit(...
typical_mistakes_attributes: [ :id, :title, :wrong_answer]
)
class Task < ApplicationRecord
has_many :typical_mistakes
accepts_nested_attributes_for :typical_mistakes, allow_destroy: true
end
class TypicalMistake < ApplicationRecord
belongs_to :task
end
`
Так что, все таки множественное число нужно, а не единственное
и еще надо в подели проверить, что бе belongs_to с единственным числом, а has_many - со множественным

Nikita
10.07.2017
08:40:44
хм, а почему форма то не создается??

Google

Nikita
10.07.2017
08:40:52
так и есть...

Fedor
10.07.2017
08:41:01
надо ошибки смотреть
при ее создании

Nikita
10.07.2017
08:41:32
я же говорю - ошибок в сервер логе нет, а .errors выдает ошибки только на саму модель!

Fedor
10.07.2017
08:41:56
при рендере вьюхи с формой
либо она должна появится, либо выпадет ошибка
либо в лог рельсы, либо в лог js

Nikita
10.07.2017
08:47:50
сейчас буду искать, спасибо за наводки
@FedorKoshel
<%= f.fields_for :locations do |ff| %>
<%= ff.text_field :address, placeholder: 'Address', required: true, class: 'input-lg form-control left-icon' %>
<%= ff.hidden_field :latitude, id: 'latitude' %>
<%= ff.hidden_field :longitude, id: 'longitude' %>
<% end %>
форма для нестед же ок создается?

Fedor
10.07.2017
08:55:42
у меня создается, без проблем

Nikita
10.07.2017
08:56:03
не понимаю, в логе js никаких ошибок

Антон
10.07.2017
09:05:07
локейшина нет - нет формы

Google

Антон
10.07.2017
09:05:39
нужно предварительно делать кто_там_у_тебя.locations.new
чтобы объект для формы был
или build
f.fields_for :locations, object.locations.new do |ff|
так чтоли
забываю всегда, погугли

Fedor
10.07.2017
09:11:56
Кстати да!
Я то использую bootstrap_nested_forms, он создает кнопку "add_element", поэтому у меня такой проблемы и нет уже давно

Nikita
10.07.2017
09:18:49
@mover = Mover.new mover_params
@mover.locations.build
я так делаю

Fedor
10.07.2017
09:20:10
не, это надо в контроллере new сделать, перед рендером формы

Nikita
10.07.2017
09:21:25
очевидно же)

Антон
10.07.2017
09:23:16
ну тогда вмешивается что-то не очевидное
например ты с телефону, а компьютер вовсе выключент

Nikita
10.07.2017
09:24:30
))

Fedor
10.07.2017
09:24:37
а в create build уже не нужен, там nested_attributes сами должны объект созавать нормально

Nikita
10.07.2017
09:28:32
https://gist.github.com/n-n1ks/f306a0a5edafdfbb17b9e37f0bf021a3
у меня вот так
но вот так - мувер без проблем создается, и не ругается на валидацию :location

Google

v
10.07.2017
09:30:03
params.require(:mover).permit(:name, :email, :phone, :password, :address,
:latitude, :longitude, :mover_type,
:job_alert, :picture, :lower_quote_alert,
:description, :dot_number, :radius_of_operation,
:service_ids => [], :names => [], location_attributes: [:address, :longitude, :latitude])
ЕНИМП, в location_attributes должен еще id быть, для внешенго ключа

Nikita
10.07.2017
09:30:14
mover_id ?
@vskopuk

v
10.07.2017
09:30:27
просто id

Nikita
10.07.2017
09:31:04
location_attributes: [:id, :address, :longitude, :latitude]
вот так?

v
10.07.2017
09:31:11
да

Nikita
10.07.2017
09:31:17
щас протестирую
да пофиг, просто создается и все

Fedor
10.07.2017
09:31:47
выглядит вроде нормально

Nikita
10.07.2017
09:31:53
даже не смотря на то, что location валидация не проходит НИХЕРА

Vasiliy
10.07.2017
09:34:12
а у тебя Mover валидный?
и всё что у него belongs_to?

Nikita
10.07.2017
09:34:42
дак Mover создается)

Fedor
10.07.2017
09:34:43
id нужен только при обновлении, иначе он всегда будет новых создавать )
при создании его еще нет
http://guides.rubyonrails.org/form_helpers.html#nested-forms

Nikita
10.07.2017
09:34:54
а Location - нет

ojab
10.07.2017
09:35:14
Из консоли если сделать Mover.create!(locations_attributes: []) и вписать всё нужное — создаётся? В locations_attributes массив передаёшь?

Fedor
10.07.2017
09:35:29
а выложи весь код на гист
в смыле, вьюху, модель и контроллер целиком

Google

Fedor
10.07.2017
09:35:29
а то мы тут гадаем на кофейной гуще

Nikita
10.07.2017
09:35:43
сек

Vasiliy
10.07.2017
09:35:47
чет с нестедами никогда проблем не было

Nikita
10.07.2017
09:36:07
но я так подозреваю, что нужно ведь проверять не только @mover.save
но и @mover.locations.first.save ?

Fedor
10.07.2017
09:36:22
к ним надо привыкнуть )

Nikita
10.07.2017
09:36:26
https://gist.github.com/n-n1ks/f306a0a5edafdfbb17b9e37f0bf021a3#file-nested-rb-L9
вот здесь
или я не прав?
что-то у меня уже пригорает

Admin
ERROR: S client not available

Fedor
10.07.2017
09:38:31
помоему нет
хотя я точно не помню, но nested_attributes вроде умеют валидироваться в рамках родительской модели
ты про pry знаешь?
воткни у себя в create в самом начале binding.pry
прогони создание, окажешься с открытой консолью посреди выполнения метода

Vasiliy
10.07.2017
09:39:51
да кстати, оно ошибки для детей возвращает

Fedor
10.07.2017
09:39:54
и просто фигани в модель те параметры что у тебя есть
и посмотри, что будет

Vasiliy
10.07.2017
09:40:17
если проект свой то выложи ты его на гитхаб весь

Google

ojab
10.07.2017
09:41:15
а лучше перечитай моё прошлое сообщение

Fedor
10.07.2017
09:42:43
и параметры можно посмотреть прям в процессе
и ошибки
ну только gem 'pry' нужен еще )

Nikita
10.07.2017
09:43:18
https://gist.github.com/n-n1ks/5654e609477c311830421a354e072a89
ojab щас сделаю
мда гайз
location_attributes: [:id, :address, :longitude, :latitude])
а может все таки locations?
а мб я просто ебал всем мозги час из-за 1 ебаной буквы?
и по всей видимости - как оказалось, да
и сразу fields_for :locations заработало...

Fedor
10.07.2017
09:48:35
ну да
соглашения важнее конфигов...
в принципе к этому надо просто привыкнуть )
все по началу страдают

Nikita
10.07.2017
09:49:05
ну это просто пездос
я сидел ломал голову
искал какие-то подводные камни
а все было вот, прям перед глазами

Fedor
10.07.2017
09:49:51
а ты создавай модели и контроллеры вручную, а не генераторами )
привычка появится следить за окончаниями слов