我使用单表继承来管理不同类型的项目.
楷模:
class Project < ActiveRecord::Base
end
class SiteDesign < Project
end
class TechDesign < Project
end
Run Code Online (Sandbox Code Playgroud)
从projects_controller编辑动作:
def edit
@project = Project.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)
查看edit.html.erb:
<% form_for(@project, :url => {:controller => "projects",:action => "update"}) do |f| %>
...
<%= submit_tag 'Update' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
更新projects_controller的操作:
def update
@project = Project.find(params[:id])
respond_to do |format|
if @project.update_attributes(params[:project])
@project.type = params[:project][:type]
@project.save
flash[:notice] = 'Project was successfully updated.'
format.html { redirect_to(@project) }
format.xml { head :ok }
else
format.html { render :action …Run Code Online (Sandbox Code Playgroud)