2015-08-13 5 views
0

Я пытаюсь создать книгу консультационную форму со следующими полями из двух моделейрельсы Вложенные поля формы не оказывающие

Модель пользователя - first_name - last_name - электронный - contact_number

Сообщение Модель

  • : MESSAGE_TEXT

Желаемая отображаемая форма должна представлять пользователю все поля модели пользователя вместе с текстовой областью, которая будет: message_text для модели сообщений.

Код пользователя Модель является

class User < ActiveRecord::Base 

    has_many :messages 

    validates :first_name , presence: true 
    validates :last_name , presence: true 
    validates :email, presence: true 
    validates :contact_number,presence: true 

    accepts_nested_attributes_for :messages 
end 

Кодекс Сообщение Модель

class Message < ActiveRecord::Base 

    validates :message_text, presence: true 
    belongs_to :user , :class_name => 'User', :foreign_key => 'id' 

end 

Индекс контролером пользователя, который делает вид выглядит

def index 
    @users = User.all 
    @user = User.new 
    @user.messages.build 
end 

Файл вид выглядит

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

     <div class="form-group"> 
      <%= f.label :first_name %> 
      <%= f.text_field :first_name %> 
     </div> 

     <div class="form-group"> 
      <%= f.label :last_name %> 
      <%= f.text_field :last_name %> 
     </div> 

     <div class="form-group"> 
      <%= f.label :email %> 
      <%= f.text_field :email %> 
     </div> 

     <div class="form-group"> 
      <%= f.label :contact_number %> 
      <%= f.text_field :contact_number %> 
     </div> 

     <div class="form-group"> 
     **the fields_for does not get rendered at all into the HTML** 
      <%= f.fields_for :messages do |ff| %> 
       <%= ff.label :message_text %> 
       <%= ff.text_field :message_text %> 
      <% end %> 
     </div> 

     <div class="btn primary-btn"> 
      <%= f.submit 'Book Free Consultation'%> 
     </div> 

Все остальные поля будут выданы. Может кто-нибудь, пожалуйста, помогите мне в определении ошибки. Спасибо заранее

+0

Вы добавили ассоциации после генерации модели, а затем перенесите базу данных? – userFriendly

+0

Нет, я завершил миграцию, а также засеял некоторые данные и протестировал ассоциацию в консоли rails. Он работает, но не выполняет рендеринг в html – Anand

ответ

0

файл миграции должен быть как ниже

class DeviseCreateUsers < ActiveRecord::Migration 
    def change 
    create_table(:users) do |t| 
     t.string :first_name 
     t.string :last_name 
     t.string :email 
     t.string :contact_number 
    end 
    end 
end 

class CreateMessages < ActiveRecord::Migration 
    def change 
    create_table(:messages) do |t| 
     t.string :message_text 
     t.references :user, index: true 
    end 
    end 
end 
+0

класс CreateUsers Anand

+0

плз сделать индекс: верно для t.refernces: Пользователь –

+0

К сожалению не повезло, что не работает. Однако, если в действии индекса я создаю новый объект сообщения @message = Message.new и в представлении индекса я пытаюсь отобразить вложенную форму, например <% = f.fields_for (@message) do | ff | %><% = ff.input: message_text, label: «Ваше сообщение», как:: text%><% end %>. Он работает не с <% = f.fields_for: messages do | ff | %>. – Anand

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