如何在不同的方法中使用相同的变量?如何在模型中调用实例方法?

时间:2013-09-19 15:05:51

标签: ruby-on-rails ruby ruby-on-rails-3

首先,我有两种方法和基本相同的变量。我该如何缩短这个:

def one
  humba = "was"
  que = "como"
  ruz = 12
  ....
end

def two
  humba = "was"
  que = "como"
  ....
end

我也想知道如何在我的模型中调用方法?我在我的模型中有这个方法:

def model_def
end

在我的控制器中,我想写这样的东西:

tmp = params[:setting][:file].tempfile
doc = DBF::Table.new(tmp)
model_def(doc)

1 个答案:

答案 0 :(得分:1)

有点不清楚你在问什么。但通常,您会将共享变量存储在类中的实例变量中:

class Book
  attr_accessor :title, :author

  def description
    "#{@title} was written by #{@author}."
  end
end

回答你的问题"我怎样才能指出我的模型"我假设你的意思是"我怎样才能在我的模型上调用一个方法:嗯,你创建了一个对象的实例。在Rails中,它可能是这样的:

@book = Book.find(params[:id])
@book.author = "A New Author" # to make an assignment

要阅读属性,您可以这样做:

@book = Book.find(params[:id])
@book.author => "Ernest Hemingway"

在你的情况下:

class Foo
  attr_accessor :humba, :que, :ruz
end

这可以让您执行以下操作:

@foo = Foo.new
@foo.humba = "que"
@foo.humba => "que"