所以我有这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,也不行。关于如何使这项工作的任何想法?
提前致谢
答案 0 :(得分:2)
您可以执行以下操作:
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
答案 1 :(得分:1)
在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
试试这个。