Obecnie mam działającego CRUD na tabeli rabbits.
Zachodzą takie relacje:
class Rabbit < ActiveRecord::Base
has_many :rabbit_photos, :dependent => :destroy
has_one :adoption, :dependent => :destroy
end
Dodaje nowy rekord poprzez form_for
<%= form_for @rabbit, :html => { :multipart => true } do |f| %>
[...]
<% end %>
Dodawanie działa, tylko jest rozstrzelone po trzech formularzach.
Czy istnieje jakiś sposób żeby to wrzucić do jednego miejsca?
Multistep nie zawsze jest dobrym rozwiązaniem gdy formularz ma przyjmować obrazki. Gdy logika takiego multistepu przechowuje zmienne w sesji, to będzie się wykładać bo obrazek wyczerpie przeważnie limit.
Bardziej przyglądałbym się nesteted resources nie zapominając o metodzie accept_nested_attributes.
[quote=marioosh]Multistep nie zawsze jest dobrym rozwiązaniem gdy formularz ma przyjmować obrazki. Gdy logika takiego multistepu przechowuje zmienne w sesji, to będzie się wykładać bo obrazek wyczerpie przeważnie limit.
Bardziej przyglądałbym się nesteted resources nie zapominając o metodzie accept_nested_attributes.
Ryan pod koniec tego cast’a od multistepu sam mówi, że należałoby to zrefaktoryzować i że najlepiej tak naprawdę użyć maszyny stanów. Wg mnie nested_attributes w zupełności wystarczą.
Jeśli w modelu Rabbit używasz attr_accessible, to pamiętaj, żeby dodać oprócz accepts_nested_attributes_for :adoption do attr_accessible :adoption_attributes.
Może piszę to trochę na wyrost, ale może się przydać. A, jeszcze jedno. W tym railscaście podany jest przykład dla relacji has_many, gdzie nested resource w akcji new buduje się tak