Принадлежит родительской форме с вложенной формой has_many в Rails 3
Сокращенные модели:
class Event < ActiveRecord::Base
belongs_to :place
accepts_nested_attributes_for :place
end
class Place < ActiveRecord::Base
has_many :events
end
Сокращенный контроллер событий:
def new
@event = Event.new
@event.build_place
def create
@event = Event.new(params[:event])
respond_to do |format|
if @event.save
Сокращенный вид:
<%= form_for(@event) do |f| %>
<%= fields_for @event.place do |place_f| %>
Учитывая вышесказанное... Я хочу, чтобы пользователь мог создать событие. Когда они создают событие, у них есть возможность добавить место. Место может или не может существовать в базе данных.
Прямо сейчас, место не связано или создано при отправке формы, но оно определенно находится в параметрах записи.
Есть мысли о том, что я делаю не так? Это для Rails 3.
1 ответ
Если вы не хотите, чтобы пользователь мог заполнить атрибуты места, удалите @event.build_place
от твоего new
действие в контроллере, как это
def new
@event = Event.new
end
и удалить <%= fields_for @event.place do |place_f| %>
заблокировать с вашей точки зрения.