我想在Rails 4中製作應用程序。Rails 4&Controller動作
我有三個模型 - Project,Scope和Finalize。
的關聯是:
項目有一個範圍 範圍屬於項目,他有一個敲定 敲定屬於範圍
範圍接受嵌套屬性來最終確定。
在最終確定,我有一個名爲屬性:草案(布爾),並稱爲屬性:finalised_at(日期時間)
我試着寫它可以讓我把一個鏈接上的任何項目,創建了一個功能:草案保存爲真。該鏈接旨在將草稿切換爲false,然後在已完成的項目上顯示發佈日期(:finalised_at)。
我收到一個錯誤,它阻止了我創建一個測試項目。錯誤是:未定義的局部變量或方法`create_a_finalise' - 引用我的項目控制器中的創建操作。我認爲這與我的scope.rb模型中的create_a_finalise方法有關。我不知道如何解決這個問題。
我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
任何人都可以看到我需要做什麼才能創建一個新項目。我的項目控制器中的創建操作有問題。
謝謝
嗨克洛伊,我試過,但隨後它與方法的錯誤:未定義的局部變量或方法'布爾」爲#<範圍:0x0000010dad0ee0> – Mel
那麼你也必須從'#create'中刪除參數! 'self.finalise.create draft:boolean'。將其設置爲像「true」這樣的硬編碼值。 – Chloe
我沒有任何東西在我的最終控制器中爲此創建操作。不明白你的意思 – Mel