2

ユーザーがアカウントを作成した後に CSV ファイルを生成したいので、モデルでafter_saveフィルターを作成しましUserたが、エラーが発生します。

これが私のコードです:

    after_save :to_csv

    def to_csv(options = {})
    require 'csv'
    CSV.generate(options) do |csv|
        csv << self.column_names//also tried User.column_names
        csv << self.attributes.values_at(*column_names)
    end
    end

しかし、ユーザーが作成されるとエラーが発生します:

     undefined local variable or method `column_names' for #<User:0x326f778>       
     app/models/user.rb:52:in `block in to_csv'
     app/models/user.rb:50:in `to_csv'
     app/controllers/users_controller.rb:27:in `create'

なぜ私はこれを得ているのですか?私はこのレールキャストを使用しています - http://railscasts.com/episodes/362-exporting-csv-and-excel

4

3 に答える 3

4

column_namesクラスのメソッドです。インスタンスで呼び出しています。本当に必要な場合はcolumn_names、を使用してself.class.column_namesください。

于 2012-09-03T07:38:57.323 に答える
3

self.attributes.keysどの列を返すか試してください

于 2012-09-03T07:37:30.270 に答える
0

ゲームで少し遅れましたが、ここにあります

self.attribute_names

私のために仕事をします。

于 2016-08-26T12:20:21.057 に答える