rails 3迁移如何在我的ApplicationHelper和WidgetsHelper中使用方法?

时间:2011-08-05 06:22:59

标签: ruby-on-rails migration

我已创建迁移以重新格式化数据库中的一些内容(将“my-name-city-state”格式的友好链接添加到我的商店记录中),但rake db:migrate失败并说

undefined method `make_friendly_link' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x3f90f30>

当我的迁移尝试访问我的StoresHelper中的方法make_friendly_link时。

我尝试明确包含ApplicationHelper和StoresHelper,但仍然失败。

我的迁移是:

class FriendlyLinkForEveryone < ActiveRecord::Migration
  include ModelHelper
  include ApplicationHelper
  include StoresHelper

  def self.up
    Store.find(:all).each do |store|
      puts "STORE: #{store.name} #{store.city} #{store.state}"
      if store.friendly_link.blank?
        store.update_attributes :friendly_link => make_friendly_link(store.name, store.city, store.state) 
      end
    end
  end

  def self.down
  end
end

make_friendly_link方法在我的stores_helper.rb中,它在我的application_helper.rb中调用一个方法

1 个答案:

答案 0 :(得分:1)

有点黑客,但你可以这样做:

v = ActionView::Base.new
v.make_friendly_link(store.name, store.city, store.state)