2015-12-27 5 views
0

может быть простым вопросом, но я не могу получить данные из одной формы в другую модель. Я только начинаю, поэтому код очень прост. У меня есть 2 моделиПринимает вложенные атрибуты для

class Client < ActiveRecord::Base 
    has_many :properties 
end 


class Property < ActiveRecord::Base 
    belongs_to :client 
    accepts_nested_attributes_for :client 
end 

Я использую form_for и гнездящийся f.fields_for

<%= form_for(@property) do |f| %> 

    <div class="form-group"> 
     <label for="exampleInputEmail1"> Descripcion:</label> 
     <%= f.text_field :descripcion, class: "form-control" %> 
    </div> 

    <%= f.fields_for :clients do |clients| %>  
     <%= clients.text_field :nombre %> 
     <%= clients.text_field :apellido %> 
    <% end %> 
<% end %> 

форма работает только для одной модели (свойства), нет никакой ошибки, но данные для клиента просто не переход к моей модели клиента. Я предполагаю, что проблема может быть с сильными параметрами вложенной формы, но я не могу исправить эту проблему. Вот мои свойства контроллера:

class PropertiesController < ApplicationController 
    def index 
    @properties = Property.all 
    @clients = Client.all 
    end 

def new 
    @property = Property.new 
end 

def create 
    @property=Property.new(params.require(:property).permit(:direccion, :descripcion, :piezas, :precio, :banos, :superficie_total, :pisos, :piscina, :superficie_construida, :amoblado, :estacionamiento, :bodega, :estado, :casa, :departamento, :terreno, :gastos_comunes, :comentarios, :comuna, :ciudad)) 

    if @property.save 
    flash[:notice] = "La Propiedad ha sido creada exitosamente =)" 
    redirect_to(:action => 'index') 

    else 
    render('new') 
    flash[:error] = "Por algun motivo no pudimos crear la propiedad =(" 
    end 
end 

    def show 
    @property = Property.all 
    end 

Может ли кто-нибудь помочь?

+0

Не могли бы вы также обновить свой атрибут модели. – VKatz

ответ

0

вы сделали пару ошибок.

Первая ошибка Как отмечают в Documentation NestedAttributes вы использовали неправильно nested_attributes.

class Client < ActiveRecord::Base 
    has_many :properties 
    accepts_nested_attributes_for :properties 
end 


class Property < ActiveRecord::Base 
    belongs_to :client 
end 

Вторая ошибка сильный параметр. Я хотел бы предложить вам пойти бросить Sitepoint rails-forms-with-nested-attributes поможет вам.

+0

@Ignacio Palma Balboa Дайте нам знать, работает ли мой ответ на вас или нет? – VKatz

Смежные вопросы