Hib*_*bri 5 ruby ruby-on-rails
我有一个表,其上有合并复制(SQL Server 2005).有一个rowguid列.我希望RoR忽略此列,而不是插入此列,并且在生成INSERT语句时不包括此列.
请参阅此票证,其中建议对 Rails 进行修补。您可以将以下代码添加到新文件中/config/initializers/hidden_columns.rb:
require "activerecord"
class << ActiveRecord::Base
def hidden_columns(*hidden)
write_inheritable_array("hidden_column", hidden.collect(&:to_s))
end
def columns_hidden
read_inheritable_attribute("hidden_column") || []
end
def columns
unless defined?(@columns) && @columns
@columns = connection.columns(table_name, "#{name} Columns").delete_if {|c| columns_hidden.member?(c.name) }
@columns.each {|column| column.primary = column.name == primary_key}
end
@columns
end
end
Run Code Online (Sandbox Code Playgroud)
然后你可以写:
hidden_columns :rowguid
Run Code Online (Sandbox Code Playgroud)
在相关型号中。