Как разделить переменную между моделью и контроллером? (Rails3) - PullRequest
0 голосов
/ 28 августа 2011

Как разделить переменную между моделью и контроллером с помощью Rails 3.1?

Он предназначен для изменения таблицы, в которую должна попасть Модель.

Любая идея сделать это в Rails Way?

Большое спасибо

Ответы [ 3 ]

1 голос
/ 28 августа 2011

Например, эта доля 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
0 голосов
/ 29 августа 2011

это плохая идея.

Пример лучшего решения.Вы используете 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')
0 голосов
/ 29 августа 2011
Article.set_table_name(TABLE_NAME)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...