2013-04-07 7 views
0

Я только что написал свой первый рубин на рельсах, и я немного застрял. У меня есть база данных библиотек с авторами, книгами и категориями. книга принадлежит автору и категории. Итак, теперь, создавая книгу, я хотел бы выбрать автора и категорию из списка. Как мне это сделать? Я новичок в рубине, поэтому любая помощь будет оценена. На данный момент книга имеет только столбец имен.Ruby on rails dropdown box

Вот класс книги или модель:

class Book < ActiveRecord::Base 
    belongs_to :author 
    belongs_to :category 
    attr_accessible :name 
    validates :name, :presence => true 
end 

ответ

0

В ваших книгах используйте форму следующее поле выбора, как:

<%= f.select :author_id, Author.all.collect {|p| [ p.name, p.id ] } %> 
<%= f.select :category_id, Category.all.collect {|p| [ p.name, p.id ] } %> 

Для получения более подробной информации ассоциации Alse см http://guides.rubyonrails.org/association_basics.html

+0

Спасибо за предоставленную мне указания. Как создать новую запись в контроллере, потому что в настоящее время у меня есть следующие строки кода, но author_id и category_id не являются правильными. book = Book.new (params [: book]) reply_to do | формат | если книга.save – CodeNoob

0

Это на ваш взгляд:

<% form_for :book do |f|%> 
<% f.text_field :name %> 
<% f.select :author_id, options_for_select(@authors.all.map{|a| a.name, a.id } %> 
<% f.select :category_id, options_for_select(@categories.all.map{|c| c.name, c.id}) %> 
<% end %> 

и что-то вроде

@authors = Author.all 
@categories = Category.all 

в контроллере