如何使用Rails 3.1在模型和控制器之间共享变量?
用于更改模型必须触及的表格。
有任何想法以Rails方式做到这一点吗?
非常感谢
答案 0 :(得分:1)
E.g。这份共享table_to_hit
:
class MyController < ApplicationController
def my_action
table_to_hit = params[:table_to_hit]
@foo = MyModel.my_class_method(table_to_hit)
end
end
class MyModel < ActiveRecord::Base
def self.my_class_method(table_to_hit)
# do something
end
end
答案 1 :(得分:0)
Article.set_table_name(TABLE_NAME)
答案 2 :(得分:0)
这是个坏主意。
更好的例子。您使用2个表:table_1,table_2。
制作AbstractTable模型
class AbstractTable << AR::Base
self.abstract_class = true
@@tables_models = {}
def self.inherited(klass)
raise 'Duplicate table error' if @@tables_models[klass.table_name]
@@tables_models[klass.table_name] = klass
end
def self.get_model_for_table(table_name)
table_name = table_name.to_s
@@tables_models[table_name]
end
...
def foo
end
end
class Table1 << AbstractTable
self.table_name = '23424'
def bb
end
end
class Table2 << AbstractTable
self.table_name = 'table_werw23424'
end
AbstractTable.get_model_for_table('23424')