小编Eye*_*dic的帖子

从控制器发送_数据()后如何继续?

我正在尝试从服务器进行简单的下载。这是使用 Rails 5.01,Ruby 2.24p230。

该视图具有到控制器的链接以下载数据。它到达那里就好了。

控制器方法就是这样:

  def download
    send_data("some sample text", filename:sample.txt)
    flash[:success] = "it worked"
  end
Run Code Online (Sandbox Code Playgroud)

结果是一个名为 sample.txt 的包含正确文本的文件被下载到客户端。闪光永远不会发生。链接到控制器的视图仍然在屏幕上,没有任何页面刷新。永远不会调用名为“download.html.erb”的视图。

我的问题是:

  1. 是否有一种简单的方法可以在 send_data 之后与客户端进行一些通信?在成功下载后告诉客户端上的人会很好。

  2. 在 send_data 之后,应该发生什么?

感谢您抽出时间来回答这个问题。

ruby-on-rails download

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

postgres 中的绝对值

我正在寻找使用 Ruby 和 Postgres 获取绝对值总和的最佳方法。

我已经尝试过下面的行,但它提供了错误的总和:

Day.last.transactions.sum  { |r| r.value_cents.abs } 
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails

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

应用程序控制器有哪些属性和方法?

我试图通过面向对象编程的镜头更深入地了解 Rails。

在构建基本应用程序时,模型的属性和方法似乎更加明显和直观,因为开发人员定义了属性和方法,例如 find 和 all 经常使用。

但我不确定控制器具有什么属性和方法,使用什么以及何时使用。

我想过使用 .method 方法来查看应用程序控制器有什么方法,但我无法弄清楚在控制台中为对象槽键入什么。

底线是我在理论上知道控制器在做什么,但是当涉及到实际的源代码时,不确定代码的哪一部分代表 ApplicationController。

像博客这样的简单 CRUD 应用程序使用了什么样的方法和属性?

ruby-on-rails

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

Rails .where 任何字段都包含特定文本

是否有一种快捷方式可以查询 Rails 数据库中包含特定文本段的字段的任何记录?我知道我可以用 a 对每个字段进行编码.where("field_name LIKE ?", "my text"),但是我有几个字段并且想知道是否有更短的方法来做到这一点。

提前致谢。

ruby-on-rails

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

在 bash 脚本中,右侧的 =~ 和 " " 有什么用?

这是显示行号的 bash 脚本的一部分。我可以理解 getopts 在 bash 中的工作原理,但无法理解第 116 行。if [[ ! " ${FS_OPTIONS[@]} " =~ " $OPTARG " ]]; then部分。在脚本的早些时候有

#!/usr/bin/env bash
FS_OPTIONS=("ubuntu" "busybox")
while getopts "hsf:" opt; do
    case $opt in
        f)
            if [[ ! " ${FS_OPTIONS[@]} " =~ " $OPTARG "  ]]; then
                echo "Unsupported filesystem $OPTARG"
                echo "Use ubuntu/busybox"
                exit -1
            else
                echo "ok!"
                export FILESYSTEM=$OPTARG
            fi
            ;;
    esac
done

ckim@chan-ubuntu:~/testbash$ test3.sh -f ubuntu
ok!
ckim@chan-ubuntu:~/testbash$ test3.sh -f busybox
ok!
ckim@chan-ubuntu:~/testbash$ test3.sh -f ubunt.
Unsupported …
Run Code Online (Sandbox Code Playgroud)

bash

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

Rails 有没有办法让一个模型选择性地属于另一个模型?

我正在构建一个 Rails 锻炼应用程序,其中包含练习和例程。我希望每个例程都由多个练习组成(has_many :exercises),但一个练习不一定必须属于一个例程。有没有办法做到这一点?

ruby-on-rails has-many belongs-to rails-activerecord

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

Ruby on Rails:ratyrate gem表已经存在吗?

我正在使用Rails 5,并且已经安装了gem并尝试运行迁移,但是却出现此错误:

Index name 'index_rates_on_rater_id' on table 'rates' already exists

有人知道为什么会这样吗?这是一个新站点,并且刚刚开始添加devise gem。

这是在执行时无法完成的迁移文件 rails db:migrate

class CreateRates < ActiveRecord::Migration[5.1]

  def self.up
      create_table :rates do |t|
        t.belongs_to :rater
        t.belongs_to :rateable, :polymorphic => true
        t.float :stars, :null => false
        t.string :dimension
        t.timestamps
      end

      add_index :rates, :rater_id
      add_index :rates, [:rateable_id, :rateable_type]
    end

    def self.down
      drop_table :rates
    end

end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-migrations ruby-on-rails-5

0
推荐指数
1
解决办法
671
查看次数

Ruby 高效的每个循环

有没有更好的方法来写这个?markdown是一个 StringIO

coverage_hash_arr = [
        {
          "Module": "Mobile",
          "name": "Sheila Chapman",
          "age": 21
        },
        {
          "Module": "Web",
          "name": "Hendricks Walton",
          "age": 40
        },
        {
          "Module": "Misc",
          "name": "Torres Mcdonald",
          "age": 39
        }
    ]

coverage_hash_arr.each do |the_hash|
    markdown << "------- Status on #{the_hash[:Module]} -------\n"
    the_hash.delete(:Module)
    the_hash.each {|key, value| markdown << "- #{key}: #{value} \n"} 
    markdown << "----------------------------------------------\n"
end
Run Code Online (Sandbox Code Playgroud)

我试过了,它似乎有效,但我想知道是否有更好的方法(递归)?

coverage_hash_arr.collect do |the_hash|
    the_hash.each do |key,value|
        key == :Module ? markdown << "--------- Status for #{value} ----------\n" : markdown << …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

0
推荐指数
1
解决办法
83
查看次数

了解 ActiveRecord 中的查询方法

我想返回布尔值show未设置为 true 的用户数。show是一个布尔值,但被初始化为nil.

正因为如此,我得到了一些我没有预料到的结果。例如,

[{show: nil}].where.not(show: true).count -> 0
Run Code Online (Sandbox Code Playgroud)
[{show: nil}].where(show: [nil, false]).count -> 1
Run Code Online (Sandbox Code Playgroud)

这个查询不应该返回同样的东西吗?

ruby-on-rails rails-activerecord

0
推荐指数
1
解决办法
28
查看次数

如何更改表名?

我是 Rails 新手。更改表名称时遇到问题。

我尝试通过转到迁移文件来更改名称create_table,并从那里更改名称,但它不起作用。

ruby-on-rails rails-activerecord

0
推荐指数
1
解决办法
1418
查看次数

如何从shell脚本中导出变量

如何从 shell 脚本导出变量?

我创建了1.sh:

#!/bin/sh -e
export TEST=$TEST:/home/centos/
Run Code Online (Sandbox Code Playgroud)

现在,当我执行 sh 1.sh 或 sudo bash 1.sh 时,它会成功执行。

但是现在我已经通过 .sh 文件导出了 TEST,我正在尝试,echo $TEST但它没有给出任何内容。

我已经浏览了所有解决方案,我发现当我运行脚本时,它实际上仅在该环境中调用子进程并导出。但我需要导出 Parent shell 中的变量。

但是当我在 .bashrc 和源 .bashrc 中编写相同的导出行时它可以工作。但是,为了使 ruby​​ 安装自动化,我不想使用 source 命令。要使用 rbenv 安装 ruby​​,我遵循了https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos-7

bash shell

-1
推荐指数
1
解决办法
6290
查看次数

Ruby 选择随机文件

我有一个文件夹,里面有很多照片。现在我正在设置一个新的 discordbot。Discord bot 应该从图片文件夹中随机选择一张图片并发布它。

我已经配置了他发送图片的机器人,现在我需要从文件夹中随机获取一张图片。

目前我可以列出我所拥有的图片。但我总是得到所有图片,而不仅仅是一张:

Dir.glob("/home/user/photo/*.jpg") do |image|
  bot.message(content: 'Ping!') do |bot|
  bot.respond image
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails discord

-1
推荐指数
1
解决办法
126
查看次数

什么是ruby中的比较器?它存在吗?

我是Ruby的新手,并使用codecademy开始我的学习.我是关于比较器/关系运算符的主题,并//作为比较器给出了一个例子.我在读什么代码?我错了?因为我无法找到任何//意味着什么,我不记得这样做.

如果确实存在,那是什么意思?

ruby comparison string-comparison comparison-operators

-2
推荐指数
1
解决办法
133
查看次数