我正在尝试从服务器进行简单的下载。这是使用 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”的视图。
我的问题是:
是否有一种简单的方法可以在 send_data 之后与客户端进行一些通信?在成功下载后告诉客户端上的人会很好。
在 send_data 之后,应该发生什么?
感谢您抽出时间来回答这个问题。
我正在寻找使用 Ruby 和 Postgres 获取绝对值总和的最佳方法。
我已经尝试过下面的行,但它提供了错误的总和:
Day.last.transactions.sum { |r| r.value_cents.abs }
Run Code Online (Sandbox Code Playgroud) 我试图通过面向对象编程的镜头更深入地了解 Rails。
在构建基本应用程序时,模型的属性和方法似乎更加明显和直观,因为开发人员定义了属性和方法,例如 find 和 all 经常使用。
但我不确定控制器具有什么属性和方法,使用什么以及何时使用。
我想过使用 .method 方法来查看应用程序控制器有什么方法,但我无法弄清楚在控制台中为对象槽键入什么。
底线是我在理论上知道控制器在做什么,但是当涉及到实际的源代码时,不确定代码的哪一部分代表 ApplicationController。
像博客这样的简单 CRUD 应用程序使用了什么样的方法和属性?
是否有一种快捷方式可以查询 Rails 数据库中包含特定文本段的字段的任何记录?我知道我可以用 a 对每个字段进行编码.where("field_name LIKE ?", "my text"),但是我有几个字段并且想知道是否有更短的方法来做到这一点。
提前致谢。
这是显示行号的 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) 我正在构建一个 Rails 锻炼应用程序,其中包含练习和例程。我希望每个例程都由多个练习组成(has_many :exercises),但一个练习不一定必须属于一个例程。有没有办法做到这一点?
我正在使用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) 有没有更好的方法来写这个?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) 我想返回布尔值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)
这个查询不应该返回同样的东西吗?
我是 Rails 新手。更改表名称时遇到问题。
我尝试通过转到迁移文件来更改名称create_table,并从那里更改名称,但它不起作用。
如何从 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
我有一个文件夹,里面有很多照片。现在我正在设置一个新的 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的新手,并使用codecademy开始我的学习.我是关于比较器/关系运算符的主题,并//作为比较器给出了一个例子.我在读什么代码?我错了?因为我无法找到任何//意味着什么,我不记得这样做.
如果确实存在,那是什么意思?
ruby-on-rails ×10
ruby ×3
bash ×2
belongs-to ×1
comparison ×1
discord ×1
download ×1
has-many ×1
postgresql ×1
shell ×1