Я работаю над проектом, где есть задачи, которые составляют охоту за мусорщиками. Когда пользователь создает новую охоту, мне бы хотелось, чтобы файл hunts/show.html.erb показывал охоту, а также задачи, связанные с этой охотой. Но модели дают мне проблемы. У меня есть настройка модели охоты на то, что она принимает вложенные атрибуты для модели задач. Поэтому, когда пользователь создает новую охоту, она также автоматически создает три задачи. Я могу получить новую охоту, чтобы сохранить, но я не могу сохранить эти новые задачи. Вот мои модели.«Принимает вложенные атрибуты», фактически не принимает атрибуты в модели
Что не хватает? Нужен ли мне запрос «attr доступный» в файле HunTasks.rb?
class Hunt < ActiveRecord::Base
has_many :hunt_tasks
has_many :tasks, :through => :hunt_tasks
accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
attr_accessible :name
validates :name, :presence => true,
:length => { :maximum => 50 } ,
:uniqueness => { :case_sensitive => false }
end
class Task < ActiveRecord::Base
has_many :hunt_tasks
has_many :hunts, :through => :hunt_tasks
attr_accessible :name
validates :name, :presence => true,
:length => { :maximum => 50 } ,
:uniqueness => { :case_sensitive => false }
end
class HuntTask < ActiveRecord::Base
belongs_to :hunt # the id for the association is in this table
belongs_to :task
end
Вот что мой контроллер Hunt выглядит следующим образом:
class HuntsController < ApplicationController
def index
@title = "All Hunts"
@hunts = Hunt.paginate(:page => params[:page])
end
def show
@hunt = Hunt.find(params[:id])
@title = @hunt.name
@tasks = @hunt.tasks.paginate(:page => params[:page])
end
def new
if current_user?(nil) then
redirect_to signin_path
else
@hunt = Hunt.new
@title = "New Hunt"
3.times do
hunt = @hunt.tasks.build
end
end
end
def create
@hunt = Hunt.new(params[:hunt])
if @hunt.save
flash[:success] = "Hunt created!"
redirect_to hunts_path
else
@title = "New Hunt"
render 'new'
end
end
....
end
эй снова Бен;) просто проверяя, вы запускаете миграцию для HuntTasks, правильно? Также, пожалуйста, покажите соответствующий код контроллера, thx, Michael. –
btw Этот railscast довольно хорошо знает об этом: http://railscasts.com/episodes/196-nested-model-form-1part-1 –
Привет! Здорово видеть вас снова! Чтобы ответить на ваш вопрос, да, я выполнил миграцию. Кроме того, я только что разместил контроллер поиска в основном разделе моего сообщения. И да, я работаю над Railscast 196, но г-н Бейтс делает это очень просто, в то время как я считаю, что это долгий трудный труд. –