Tag: 引用

凌乱&从Rails 3控制器返回查看

在我的Rails 3 app控制器上,我有以下代码: array = [] Location.all.each{|x|array<<x.city.html_safe} @data_dump = array 在Rails控制台中,它看起来很干净: [“Littelside”, “Tessmouth”] 在我看来,@ data_dump对象被编码: ["Littelside", "Tessmouth"] 你怎么清理这个烂摊子? 我希望我的对象在视图中,以对象在终端中返回。 提前致谢!

to_xml不适用于通过Rails返回的对象ActiveRecord habtm参考

我有两个rails活动记录类,School和Instructor通过has_and_belongs_to_many关系链接。 我需要查询我的instructors_controller以获取特定学校的教师并返回xml格式的响应。 因此,在索引方法中我有这个代码片段: school = School.find(params[:school_id]) @instructors = school.instructors 然后: respond_to do |format| format.html # index.html.erb format.xml { render :xml => @instructors } format.json { render :json => @instructors } end 但它不起作用。 看看这个有趣但令人困惑的序列: ruby-1.9.2-p180 :023 > Instructor.all.first => # ruby-1.9.2-p180 :026 > Instructor.all.first.class => Instructor(id: integer, name: string, instructor_type_id: integer, created_at: datetime, updated_at: datetime) ruby-1.9.2-p180 […]

为什么这个Ruby方法通过引用传递它的参数

我回答了这个问题并偶然发现了一些奇怪的事情。 Ruby通过值传递参数,但变量本身就是引用。 那么为什么第一种方法似乎通过引用传递它的参数呢? require ‘set’ require ‘benchmark’ def add_item1!(item, list) list << item unless list.include?(item) end def add_item2(item, list) list |= [item] end def add_item3(item, list) set = Set.new(list) set << item list = set.to_a end array1 = [3,2,1,4] add_item1!(5, array1) p array1 # [3, 2, 1, 4, 5] array2 = [3,2,1,4] add_item2(5, array2) p […]

Rails:违反外键约束

我有三种模式: Book , genre , BookGenre ,这里有关系: class BookGenre < ActiveRecord::Base belongs_to :book belongs_to :genre end class Book < ActiveRecord::Base has_many :book_genres has_many :genres, through: :book_genres end class Genre < ActiveRecord::Base has_many :book_genres has_many :books, through: :book_genres end 然后我使用seed文件将数据放入这些表中。 但是当我想再次使用rake db:seed时,它显示了这个错误 ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table “books” violates foreign key constraint “fk_rails_4a117802d7” […]

ruby中的数组数组,通过引用传递

我正在尝试在Ruby中创建一个填充零的5×5矩阵。 我使用的代码是: ruby-1.9.2-p290 :014 > a = Array.new(5, Array.new(5, 0)) => [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 但是,新创建的数组不是单独的对象,而是对一个对象的引用。 因此,当我尝试执行以下操作时: a[2][2] = 1我得到: => [[0, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, […]

单引号字符串中的反斜杠与双引号字符串相反

如果我在双引号和单引号字符串的开头添加反斜杠+空格,我会得到不同的结果: “\ text” ‘\ text’ 在双引号字符串的输出中,我只看到一个空格。 在单引号字符串的输出中,我看到反斜杠+空格。 那里发生了什么? 这是因为’\ ‘被解释为双引号字符串中的特殊字符,但在单引号字符串中字符保留原样? 如果我将字符串更改为this,我会看到相同的输出,即单个斜杠后跟一个空格,然后是文本: “\\ text” ‘\\ text’ 在这两种情况下,反斜杠都会被转义。 我很困惑为什么他们在这种情况下以同样的方式工作。 是否有一些规则可以帮助解释单引号字符串和双引号字符串如何处理Ruby中的反斜杠之间的根本区别?