Я пытаюсь сделать приложение в Rails 4.Rails 4 & Controller action
У меня есть три модели - Project, Scope и Finalize.
Ассоциации является:
Проект имеет одну области Области принадлежит к проекту и имеет один завершить Доработка принадлежит Scope
Области принимает вложенные атрибуты для Finalize.
В Finalize, у меня есть атрибут: проект (булево) и атрибут: finalised_at (DateTime)
Я попытался написать функцию, которая позволит мне поставить ссылку на любой проект, созданный с: проект сохранен как истинный. Ссылка предназначена для переключения: черновик в false, который затем отображает дату публикации (: finalised_at) для завершенных проектов.
Я получаю сообщение об ошибке, которое мешает мне создать тестовый проект. Ошибка: неопределенная локальная переменная или метод `create_a_finalise 'for - ссылка на действие create в моем контроллере проекта. Я думаю, что это имеет какое-то отношение к методу create_a_finalise, находящемуся в моей модели scope.rb. Я не знаю, как это исправить.
Мой finalise.rb имеет:
after_validation :set_publish_time
def set_publish_time
self.finalised_at = Time.now unless self.draft
end
Мой scope.rb имеет:
after_create :create_a_finalise
def create_a_finalise_dynamic(boolean)
self.finalise.create draft: boolean
end
Мой finalise_controller имеет:
def toggle_draft
@finalise = Finalise.find(params[:finalise_id])
@finalise.draft = false
if @finalise.save
redirect_to project_path(@finalise.scope.project), notice: 'Successfully Updated'
else
redirect_to project_path(@finalise.scope.project), alert: 'Not Updated'
end
end
Проблемная часть моего project_controller имеет:
def create
#authorise @project
@project = Project.new(project_params)
@project.creator_id = current_user.id
@project.users << current_user
respond_to do |format|
if @project.save
format.html { redirect_to @project }
format.json { render action: 'show', status: :created, location: @project }
else
format.html { render action: 'new' }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
end
Может ли кто-нибудь увидеть, что мне нужно сделать, чтобы создать новый проект. Что-то не так с действием create в моем контроллере проектов.
Спасибо
Привет Хлоя, я попытался это, но тогда имеет ошибку с помощью метода: неопределенную локальную переменную или метод 'булево» для # <Масштаб: 0x0000010dad0ee0> – Mel
Ну ты также нужно удалить аргумент из '# create'! 'self.finalise.create draft: boolean'. Установите его в твердое кодированное значение, например 'true'. – Chloe
У меня нет ничего в моем контроллере финализации, создайте для этого действие. Не уверен, что вы имеете в виду – Mel