[英]Rails update model from another controller
所以我有這2個模型,文件夾和事件。 文件夾have_one事件和事件屬於文件夾。
我希望能夠在文件夾的同時使用新屬性更新文件夾的事件。 像這樣的東西。
def update
respond_to do |format|
if @folder.update(folder_params)
@folder.event.update_attributes(status: @folder.status)
format.html { redirect_to @folder, notice: 'Folder was successfully updated.' }
format.json { render :show, status: :ok, location: @folder }
else
format.html { :edit }
format.json { render json: @folder.errors, status: :unprocessable_entity }
end
end
end
但我知道這不是很符合MVC,也不行。 關於如何使這項工作的任何想法?
提前致謝
你可以這樣做:
class Folder < ActiveRecord::Base
after_save :update_event_status, on: update #Or after_update :update_event_status
def update_event_status
event.update_attributes(status: status)
end
end
在Model中編寫方法並在控制器方法中調用它。 像下面的代碼。
class Folder < ActiveRecord::Base
def update_event_status(event,status)
event.update_attributes(status: status)
end
end
def update
respond_to do |format|
if @folder.update(folder_params)
update_event_status(@folder.event,@folder.status) #call methode here
format.html { redirect_to @folder, notice: 'Folder was successfully updated.' }
format.json { render :show, status: :ok, location: @folder }
else
format.html { :edit }
format.json { render json: @folder.errors, status: :unprocessable_entity }
end
end
end
嘗試這個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.