Tag: 循环

更新Rails中的每个Array-Object值

基本上我想更新Rails 5中的Model的每个表列。 str = “abc—def” str.split(‘—‘).map do |a| Foo.where(product_id:1).update_all(bar: a) end 旧对象就像: [ [0] { product_id: 1, …, bar: “xxx”, … }, [1] { product_id: 1, …, bar: “xxx”, … } ] 新应该是这样的: [ [0] { product_id: 1, …, bar: “abc”, … }, [1] { product_id: 1, …, bar: “def”, … } ] 但我得到的是bar: “def”每个人都bar: […]

在Rails 5中渲染循环内部分

问题:如何使部分(必须是通用的)循环遍历不同的变量? 我有一个标签页,我想使用partial来避免重复我的HTML。 标签是“video”和“文章”。 这是完全相同的HTML,但我想通过video和@articles迭代文章。 我的想法是让产品部分完全通用,然后以某种方式传递我想迭代的@videos或@articles。 部分:_product.html.slim .col-md-5 .thumbnail .thumb.spacer-sm – if product.image.blank? iframe allowfullscreen=”” frameborder=”0″ mozallowfullscreen=”” src=”https://player.vimeo.com/product/#{product.vimeo_id}” webkitallowfullscreen=”” – elsif product.vimeo_id.blank? = image_tag(product.image.url, class: ‘img img-responsive img-rounded’) .caption .content-group-sm.media .media-body h6.text-semibold.no-margin = product.name small.text-muted | by  = product.user.name – unless product.price.blank? h6.text-success.media-right.no-margin-bottom.text-semibold | $ = product.price = product.description .panel-footer.panel-footer-transparent .heading-elements ul.list-inline.list-inline-separate.heading-text li = link_to ‘Delete’, […]

在每个“每个do”循环中在Rails中进行基本数学并得到总和

Rails新手! 我有与广告系列相关的产品。 每个@product都有一个.price和.orders_count。 我想要做的是将每个@product的.price与.orders_count相乘,并将它们全部加起来以获得@campaign的总成本。 作为Rails的新手,不知道如何编写语法并在视图中有以下内容。 这是第一件作品,但最后并未全部添加。 谢谢您的帮助!

对于带有OR的for循环内的循环

我有点卡住了。 我想要回复我的post和我的follow_userspost。 我有一个名为“followed_users”的关联,所以我可以调用@ user.followed_users 这适用于“follow_users”post。 我还想包括我的post。 所以我的计划是首先检查我的post,然后遍历所有,看看哪个属于我的follow_users。 我的实现是返回我的post,但不是所有的follow_users。 我是在正确的轨道上吗?

Ruby on Rails Active Record RANDOM()在循环中始终相同

为什么这会重复输出相同的记录ID,何时应该在每个循环迭代中抓取一个随机记录? count = 0 while count < 20 puts "ID: " + SomeModel.where(assoc_id: 10).order("RANDOM()").limit(1).first.id.to_s count += 1 end 输出: ID: 82784 ID: 82784 ID: 82784 ID: 82784 ID: 82784 我已经确保查询有足够的记录(即超过1)。 在控制台中,行本身(在循环之外)每次都会返回一个新的ID,因此它与循环有关。 我不明白的是什么?

循环通过带有轨道的哈希数组

因此,我试图从这一系列哈希中抓住所有高中和研究生院 : “education”: [ { “school”: { “id”: “110703012290674”, “name”: “Kunskapsgymnasiet Malmö” }, “year”: { “id”: “136328419721520”, “name”: “2009” }, “type”: “High School” }, { “school”: { “id”: “112812485399398”, “name”: “Malmö University” }, “year”: { “id”: “118118634930920”, “name”: “2012” }, “concentration”: [ { “id”: “104076956295773”, “name”: “Computer Science” } ], “type”: “Graduate School”, “classes”: [ […]

Ruby循环和类; 将字符串拆分为数组并再次返回字符串

Ruby新手在这里处理循环与类。 我应该创建一个方法,它将采用一个字符串并在每个单词的末尾添加感叹号(通过使其成为一个带有.split的数组)并再次将“惊呼”的单词作为字符串加入。 我已经在这里待了两个小时,并决定我应该寻求帮助。 我有一些想法,但我不断提出NoMethod错误。 以下是对我有意义的方法之一,但当然,它不起作用。 我还在最后添加了规格。 class StringModifier attr_accessor :string def initialize(string) @string = string end def proclaim new_array = [] string.split.each do |word| new array = “#{word}!” new_array.join end new_array end end 眼镜 describe StringModifier do describe “#proclaim” do it “adds an exclamation mark after each word” do blitzkrieg_bop = StringModifier.new(“Hey ho let’s go”).proclaim […]

是否有rails方法来遍历上传文件的每一行? “each_line”是一种IO方法,但它不起作用

我正在尝试上传一个csv文件,解析它,并为S3吐出一个文件或者只是传递给查看。 我使用file_field_tag上传csv。 我认为file_field_tag传递一个对象,该对象是IO的子类,并且将具有所有ruby IO方法,例如“each_line”。 我可以在对象(IO类的方法)上调用“read”而不是“each_line”…所以如何迭代file_field_tag上传的每一行? 创建我的控制器的方法: @csv_file = params[:csv_file] 我的show view会抛出一个没有“each_line”方法的错误: 但我可以使用 我真的很困惑file_field_tag上传params []有哪些方法… each_line,得到不起作用……我似乎无法找到我可以使用的列表。 编辑我通过这样做来解决这个问题: @csv_file = params[:csv_file].read.to_s 然后迭代: 编辑2正在上传的文件在不包含逗号的行后重复标题(不要问)…所以我找到没有逗号的行并调用.gets(在我的rb脚本中独立于rails)。 不幸的是我得到一个错误,关于获取我无法调用的私有方法。 这可以追溯到我最初的问题。 使用IO方法(例如read_lines&gets),文件不是IO的子类吗? @file_out = [] @file_in.each_line do |line| case line when /^[^,]+$/ @comp = line.to_s.strip comp_header = @file_in.gets.strip.split(”) @file_out.push(@comp) end end

迭代数据库中的每条记录 – Ruby on Rails / ActiveRecord

n00b问题。 我正在尝试遍历数据库中的每个用户记录。 伪代码可能看起来像这样: def send_notifications render :nothing => true # Randomly select Message record from DB @message = Message.offset(rand(Message.count)).first random_message = @message.content @user = User.all.entries.each do @user = User.find(:id) number_to_text = “” @user.number = number_to_text #number is a User’s phone number puts @user.number end end 有人可以填写我这样做的最佳方法吗? 语法的一点帮助也会很棒:)

语句不能处理简单代码

我正在尝试在提示中设置一个非常简单的骰子滚动和响应,但它无法正常工作。 我希望循环继续询问,直到用户输入roll,Roll或ROLL。 def roll() x = rand(5) + 1 y = rand(5) + 1 z = rand(5) + 1 puts “You rolled #{x},#{y},#{z}” if x == y && y == z puts “TRIPS! Trip #{x}s” elsif x == y || y == z || x == z puts “Pair!” else if x > y && […]