paulorof 0 Denunciar post Postado Junho 26, 2019 Bom dia a todos. Tenho o seguinte problema com nested attributes no rails 4. Criei um modelo Pessoa onde pessoa tem um endereço. Até aí tudo bem, pois com as configurações básicas do nested attributes ele cria aninhado a Pessoa e o endereço no banco de dados e associa o id do endereço a pessoa. Sendo que eu posso ter mais de uma pessoa para o mesmo endereço, então eu gostaria de que antes de salvar no banco o objeto Endereço fosse pesquisado, se já existe um endereço com os dados que eu informar como único, retorna o ID do endereço para associar a Pessoa, se não ele faz o fluxo que já é feito de criar um novo registro e associar a pessoa. Alguém conhece alguma forma de fazer isso usando o nested attributes? Tabela Pessoa: nome, cpf, endereco_id Tabela endereco: logradouro, numero, cep, municipio Código Fonte class Pessoa < ActiveRecord::Base belongs_to :endereco accepts_nested_attributes_for :endereco end class Endereco < ActiveRecord::Base has_many :pessoas accepts_nested_attributes_for :endereco end <%= form_for(pessoa, html: { class: 'form-horizontal' }) do |f| %> <div class="form-group"> <%= f.label :nome, class: 'col-sm-2 control-label' %> <div class="col-sm-8"> <%= f.text_field :nome, class: 'form-control maiusculo' %> </div> </div> <div class="form-group"> <%= f.label :cpf, class: 'col-sm-2 control-label' %> <div class="col-sm-8"> <%= f.text_field :cpf, class: 'form-control maiusculo' %> </div> </div> <%= f.fields_for :endereco do |en| %> <div class="form-group"> <%= en.label :logradouro, class: 'col-sm-2 control-label' %> <div class="col-sm-8"> <%= en.text_field :logradouro, class: 'form-control maiusculo' %> </div> </div> <div class="form-group"> <%= en.label :numero, class: 'col-sm-2 control-label' %> <div class="col-sm-8"> <%= en.text_field :numero, class: 'form-control maiusculo' %> </div> </div> <div class="form-group"> <%= en.label :cep, class: 'col-sm-2 control-label' %> <div class="col-sm-8"> <%= en.text_field :cep, class: 'form-control maiusculo' %> </div> </div> <div class="form-group"> <%= en.label :municipio, class: 'col-sm-2 control-label' %> <div class="col-sm-8"> <%= en.text_field :municipio, class: 'form-control maiusculo' %> </div> </div> <% end %> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <%= f.submit nil, class: 'btn btn-primary' %> <%= link_to I18n.t('.cancel', default: I18n.t("helpers.links.cancel")), pessoas_path, class: 'btn btn-default' %> </div> </div> <% end %> Compartilhar este post Link para o post Compartilhar em outros sites
sujeitoprogramador_ 0 Denunciar post Postado Setembro 22, 2019 olá se ainda surgir duvidas sobre o assunto recomendo o material https://go.hotmart.com/U16520211I?dp=1 me ajudou quando precisei aprender ruby Compartilhar este post Link para o post Compartilhar em outros sites