0

У меня есть форма от пользователявложенные атрибуты не отображающие форму правильно

<%= form_for(@user) do |f| %> 
    <%= f.fields_for :businesses do |field| %> 
    <div class="field"> 
     <%= field.label :address %> 
     <%= field.text_field :address %> 
    </div> 
    <div class="field"> 
     <%= field.label :city %> 
     <%= field.text_field :city %> 
    </div> 
    <% end %> 
<% end %> 

Он не отображает мои поля, но когда я изменить businesses к business, то это показывает, или если я удалить f из f.fields_for. Но я не думаю, что он правильно сохраняет базу данных.

моя модель пользователя

class User < ActiveRecord::Base 
    has_many :businesses 
    accepts_nested_attributes_for :businesses 
en 

мой бизнес-модель

class Business < ActiveRecord::Base 
    attr_accessible :user_id, :address, :city 
    belongs_to :user 
end 

мой Bussiness миграция

class CreateBusinesses < ActiveRecord::Migration 
    def change 
    create_table :businesses do |t| 
     t.integer :user_id 
     t.string :address 
     t.string :city 

     t.timestamps 
    end 
    end 
end 

Любые предложения относительно того, что я делаю неправильно?

Благодаря

+0

Есть ли у пользователя какие-либо предприятия? –

ответ

3

Вы должны строить бизнес, прежде чем он может отобразить форму для него:

@user.businesses.build 

Используйте, что перед использованием fields_for

также проверить этот большой камень для управления вложенными формами:

https://github.com/ryanb/nested_form

+0

Итак, пользователь должен будет иметь бизнес сначала до отображения формы? Но что, если я хочу, чтобы пользователь вводил бизнес? – hellomello

+0

Мне удалось отобразить поля, когда я положил '<% = f.fields_for: business, @ user.businesses.build do | field | %> 'Но теперь, когда я сохраняю свою базу данных, информация не появляется в поле? Разве мои значения не должны появляться в полях автоматически, если я хочу отредактировать свою информацию? Если я делаю '<% = @ user.businesses%>', он показывает мой сохраненный файл. – hellomello

+0

И он просто продолжает добавлять новые данные, когда я пытаюсь вставить больше информации в поле 'address' и' city', оно должно переопределять исходные данные? – hellomello

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