Witam,
Jestem kompletnie zielony w temacie railsa także prosiłbym o wyrozumiałość, gdyby coś niejasno wytłumaczył. Mam problem z dziedziczeniem (z modelu Product dziedziczy klasa book). Zapisalem to w ten sposób:
class Product < ActiveRecord::Base
attr_accessible :amountAvailable, :name, :price
end
class Book < Product
attr_accessible :author
end
Dodatkowo utworzyłem taki formularz:
[code]<%= form_for “product”, :url => { :action => “newproduct” } do |f| %>
<%= f.label “name” %>
<%= f.text_field “name” %>
<%= f.label “price” %>
<%= f.text_field “price” %>
<%= f.label “Amount Available” %>
<%= f.text_field “amountAvailable” %>
<%= f.label “Choose a type:” %>
<%= radio_button_tag(:type, “book”) %>
<%= label_tag(:type_book, “Book”) %>
<%= radio_button_tag(:type, “movie”) %>
<%= label_tag(:type_movie, “Movie”) %>
<%= f.label “Author” %>
<%= f.text_field “author” %>
<%= f.submit %>
<% end %>[/code]
Następnie w kontrolerze próbuje obsłużyć dodawanie nowego przedmiotu w taki sposób:
[code] def newproduct
if params["product"]
data = {
"name" => params["product"]["name"],
"price" => params["product"]["price"],
"amountAvailable" => params["product"]["amountAvailable"],
}
if params["type"] == "book"
data["author"] = params["product"]["author"]
logger.info(data)
@newBook = Book.new(data)
@newBook.save
end
if params["type"] == "movie"
end
end
end[/code]
Niestety dostaje komunikat, że atrybut autora nie jest dostępny (unknown attribute: author). Dodam ze jeżeli zrezygnowałbym z pola authora to rails dodałby mi nowy produkt (product, a nie book pomimo, że tworzę @newBook = Book.new(data) @newBook.save ). Bardzo bym prosił o wskazanie gdzie popełniam błąd.
Z góry dzięki za pomoc!