sti rails 注意事项

环境变量:
  config.active_record.mass_assignment_sanitizer = :logger # :restrict
in application.rb:
config.active_record.whitelist_attributes = false


参考网址:
http://hobocentral.net/tutorials/64-single-table-inheritance-with-children

子类代码:

class Agent < Profile

has_many :phone_numbers
children :phone_numbers
# The other recipe(s) say leave the sub-class models empty, but
# I needed both these lines to make the app work.





mass_assignment_sanitizer - Defines sanitize method. Possible values are:

:logger (default) - writes filtered attributes to logger

:strict - raise ActiveModel::MassAssignmentSecurity::Error on any protected attribute update



class PhoneNumbersController < ApplicationController

hobo_model_controller

auto_actions :all

auto_actions_for :profile , :create
auto_actions_for :agent , :create
auto_actions_for :client , :create
auto_actions_for :cooperating_agent , :create

end



class Profile < ActiveRecord::Base

hobo_model # Don't put anything above this

fields do
name :string
street :string
sti_type :string
timestamps
end
attr_accessible :name, :street,:sti_type

set_inheritance_column :sti_type

has_many :phone_numbers
children :phone_numbers
end

你可能感兴趣的:(Rails-Hobo)