2015-11-10 25 views
0

我需要重構我的表,這樣的表名具有前綴的錯誤。即搜索變成rl_searches。軌道重構模型給出的不能重命名實例變量「@search」當地「rl_search」

當我跑searches.rb的重構來rl_searches.rb,我得到的

錯誤

不能重命名實例變量「@search」當地「rl_search」

如果我顯示在一個視圖中的衝突,其中一個例子是:

def destroy 
@search.destroy 
respond_to do |format| 
    format.html { redirect_to searches_url, notice: 'Search was successfully destroyed.' } 
    format.json { head :no_content } 
end 
end 

private 
# Use callbacks to share common setup or constraints between actions. 
def set_search 
    @search = Search.find(params[:id]) 
end 

我最初的想法是,我也許可以重構模型不能強迫變量的重構。這會工作嗎?

回答

1

是的,你可以明確地設置table name

class Search < ActiveRecord::Base 
    def self.table_name 
    "rl_" + super 
    end 
end 
+0

我還發現,可以添加config.active_record.table_name_prefix =「pre_」來的config/application.rb中: 我確實有這樣的問題:一些寶石有自己的數據文件,似乎不受模型或application.rb更改的影響。我正在研究使用模式來分離事物的可能性。 –