标签: attr-accessor

attr_accessor默认值

我正在使用rails,我想这样做attr_accessor :politics,默认设置为false.

有谁知道如何做到这一点,能够用简单的术语解释它吗?

ruby ruby-on-rails attr-accessor

54
推荐指数
1
解决办法
4万
查看次数

如何为动态实例变量设置attr_accessor?

我在我的类中动态创建了一个实例变量:

class Mine
  attr_accessor :some_var

  def intialize
    @some_var = true
  end

  def my_number num
    self.instance_variable_set "@my_#{num}", num
  end
end
Run Code Online (Sandbox Code Playgroud)

@my_#{num}现在如何制作attr值?

例如,我希望能够这样做:

dude = Mine.new
dude.my_number 1
dude.my_1
=> 1
Run Code Online (Sandbox Code Playgroud)

ruby instance-variables attr-accessor attr

31
推荐指数
5
解决办法
2万
查看次数

在rails中,默认的getter和setter会是什么样子?

我知道我可以编写attr_accessor:tag_list来为Rails中的对象创建一个虚拟属性tag_list.这允许在对象的表单中存在tag_list属性.

如果我使用attr_accessor:tag_list,我可以在模型中对tag_list执行操作以从表单中提取和操作数据.

我想知道的是,而不是写attr_accessor,我怎么会写一个getter和setter,将完全复制的attr_accessor默认功能.例如:

def tag_list
    #what goes here
end
Run Code Online (Sandbox Code Playgroud)

仅供参考我尝试过

 def tag_list
     @tag_list
 end
Run Code Online (Sandbox Code Playgroud)

这不起作用.

ruby ruby-on-rails virtual-attribute attr-accessor ruby-on-rails-3

24
推荐指数
2
解决办法
3万
查看次数

在同一个字段上使用attr_accessor和attr_accessible

使用以下代码在后台会发生什么?

class User < ActiveRecord::Base

 attr_accessor :name
 attr_accessible :name

end
Run Code Online (Sandbox Code Playgroud)

提示:实例化类时,是否会持久化到数据库?为什么或者为什么不?

field ruby-on-rails attr-accessor attr-accessible

21
推荐指数
3
解决办法
2万
查看次数

Ruby:动态生成attribute_accessor

我正在尝试从散列(使用嵌套散列)生成attr_reader,以便它自动镜像instance_variable创建.

这是我到目前为止:

data = {:@datetime => '2011-11-23', :@duration => '90', :@class => {:@price => '£7', :@level => 'all'}}


class Event
 #attr_reader :datetime, :duration, :class, :price, :level
  def init(data, recursion)
   data.each do |name, value|
    if value.is_a? Hash
      init(value, recursion+1)
    else
      instance_variable_set(name, value)
      #bit missing: attr_accessor name.to_sym 
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但我找不到办法做到这一点:(

ruby attr-accessor

20
推荐指数
2
解决办法
9855
查看次数

attr_accessor强类型Ruby on Rails

只是想知道是否有人能够在Ruby on Rails中对getter setter的基础知识进行一些了解,并提供强类型视图.我对rails上的ruby非常新,并且主要对.NET非常了解.

例如,我们假设我们有一个名为Person的.net类

class Person
{
 public string Firstname{get;set;}
 public string Lastname{get;set;}
 public Address HomeAddress{get;set;}
}

class Address
{
 public string AddressLine1{get;set;}
 public string City{get;set;}
 public string Country{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

在Ruby中,我会写这个

class Person
 attr_accessor :FirstName
 attr_accessor :LastName
 attr_accessor :HomeAddress
end

class Address
 attr_accessor :AddressLine1
 attr_accessor :City
 attr_accessor :Country
end
Run Code Online (Sandbox Code Playgroud)

查看Person类的Ruby版本如何指定访问器方法FirstName,LastName和HomeAddress的类型?如果我要使用这个类,我可以将任何类型提供给HomeAddress,但我希望这个访问器方法只接受TYPE地址.

有什么建议 ?

谢谢

ruby ruby-on-rails accessor attr-accessor

17
推荐指数
2
解决办法
7624
查看次数

在paperoku上使用paperclip和S3上传时,模型缺少'photo_file_name'所需的attr_accessor

在我的linux开发环境中使用S3设置回形针非常容易 - 一切都是开箱即用的.但是,我无法让它在Heroku上工作.

当我尝试上传时,日志显示:

Processing ItemsController#create (for 72.177.97.9 at 2010-08-26 16:35:14) [POST]  
  Parameters: {"commit"=>"Create", "authenticity_token"=>"0Hy3qvQBHE1gvFVaq32HMy2ZIopelV0BHbrSeHkO1Qw=", "item"=>{"photo"=>#<File:/home/slugs/270862_4aa601b_4b6f/mnt/tmp/RackMultipart20100826-6286-1256pvc-0>, "price"=>"342", "name"=>"a new item", "description"=>"a new item", "sold"=>"0"}}

Paperclip::PaperclipError (Item model missing required attr_accessor for 'photo_file_name'):
Run Code Online (Sandbox Code Playgroud)

我找到了一篇引用此错误的博文,并说它将此添加到我的模型中:

attr_accessor :photo_file_name
attr_accessor :photo_content_type
attr_accessor :photo_file_size
attr_accessor :photo_updated_at
Run Code Online (Sandbox Code Playgroud)

这确实使得缺少attr_accessor所需模型'photo_file_name'错误消失了,但它仍然不起作用.请参阅我的其他问题了解详情.正如我已经发现,随着attr_accessor行添加到我的模型中,即使在我的开发系统上,上传也会失败,我怀疑这不是正确的答案.

heroku amazon-s3 paperclip attr-accessor

10
推荐指数
1
解决办法
1万
查看次数

Ruby attr_accessor与getter/setter基准测试:为什么访问器更快?

我刚刚对等效的getter/setter方法测试了attr_accessor:

class A
  # we define two R/W attributes with accessors
  attr_accessor :acc, :bcc

  # we define two attributes with getter/setter-functions
  def dirA=(d); @dirA=d; end
  def dirA; @dirA; end
  def dirB=(d); @dirB=d; end
  def dirB; @dirB; end
end

varA   = A.new
startT = 0
dirT   = 0
accT   = 0

# now we do 100 times the same benchmarking
# where we do the same assignment operation
# 50000 times
100.times do
  startT = Time.now.to_f
  50000.times do |i|
    varA.dirA = …
Run Code Online (Sandbox Code Playgroud)

ruby benchmarking attr-accessor getter-setter

10
推荐指数
1
解决办法
1686
查看次数

rails 4中的虚拟属性

我如何在rails 4中使用虚拟属性(getter,setter),因为'attr_accessible'已被删除.

我在这里遇到问题

  def tags_list
    @tags = self.tags.collect(&:name).join(', ')
  end
Run Code Online (Sandbox Code Playgroud)

在尝试更新/创建时,我可以达到上述方法,但无法达到下面的setter.

  def tags_list=(tags)
    @tags = tags
  end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails virtual-attribute attr-accessor ruby-on-rails-4

10
推荐指数
1
解决办法
2万
查看次数

使用方法调用在attr_accessor中指定属性列表

我想创建大量的属性,如果用这样的方法调用构造,可以轻松完成,

 attr_accessor :attr_list 

 def attr_list
   [:x1, :y1, :x2, :y2]   
 end
Run Code Online (Sandbox Code Playgroud)

这不起作用.有没有其他方法来实现这一目标?

任何帮助将不胜感激.

attr-accessor attr-accessible ruby-on-rails-3

8
推荐指数
2
解决办法
3349
查看次数