undefined local variable or method `request'

I have a model users.rb

class Users < ActiveRecord::Base   def self.setdot(dot)   end end

In controller I call it:

user = Users.new user = Users.setdot("sddf")

I get error:

undefined local variable or method `request'

/usr/local/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record/base.rb:1833:in `method_missing' app/models/users.rb:5:in `setdot'

Can you show the code for the setdot method?

Franz Strebel wrote:

Can you show the code for the setdot method?

class Users < ActiveRecord::Base def self.setdot(dot)   user = self.find_or_create_by_dot (dot)   if user.user_ip != request.remote_ip    user.user_ip = user.remote_ip    user.count = user.count + 1    user.save   end end end

Sorry,

user.user_ip = request.remote_ip

Gi Ga wrote:

Franz Strebel wrote:

Can you show the code for the setdot method?

class Users < ActiveRecord::Base def self.setdot(dot)   user = self.find_or_create_by_dot (dot)   if user.user_ip != request.remote_ip    user.user_ip = user.remote_ip    user.count = user.count + 1    user.save   end end end

ActiveRecord::Base has no local variable nor method named request. This is precisely what the error message says. Also self.setdot(dot) has no local variable named request, but you are attempting to access a variable or method named request in the line:

  if user.user_ip != request.remote_ip

Things like the session and request/response objects are not available to the model layer of MVC, as it should be. My suggestion would be to get the "data" that you want from the request and pass that "data" along to the model layer. The layer that is responsible to managing the data of your application.

Hope this helps.