我知道这个问题已经在这个论坛上被问了很多,但是我在一个严格的截止日期前,我需要一些帮助,所以任何建议都非常感谢.我是Ruby on Rails的新手,所以请在回复时记住这一点.我想创建一个rake任务,在运行时,更新mysqlite db中的多个表.这是一个在我的数据库中创建新事件的迁移文件.如何创建rake任务,通过CSV文件输入所有这些信息.有人可以从头到尾写一些rake文件给我一些帮助.显然你不需要为每个字符串编写每个任务,只需举几个例子.除了实际的rake文件之外,我是否需要将代码添加到我的应用程序的任何其他部分(我知道这是一个非常一般的问题,但如果我确实需要添加代码,我将非常感谢对其中的一般描述).我觉得会有一些指导意见.如果有人需要我的任何更多信息,请询问.
class CreateIncidents < ActiveRecord::Migration
def self.up
create_table :incidents do |t|
t.datetime :incident_datetime
t.string :location
t.string :report_nr
t.string :responsible_party
t.string :area_resident
t.string :street
t.string :city
t.string :state
t.string :home_phone
t.string :cell_phone
t.string :insurance_carrier_name
t.string :insurance_carrier_street
t.string :insurance_carrier_city
t.string :insurance_carrier_state
t.string :insurance_carrier_phone
t.string :insurance_carrier_contact
t.string :policy_nr
t.string :vin_nr
t.string :license_nr
t.string :vehicle_make
t.string :vehicle_model
t.string :vehicle_year
t.timestamps
end
end
def self.down
drop_table :incidents
end
end
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用pgbackups将数据库从现有应用程序迁移到新应用程序,但我遇到了问题.我已经阅读了heroku的开发站点上的文档,但我仍然遇到错误.
我已经为两个数据库安装了插件,我可以成功转到我的源数据库并复制/捕获它.
$ heroku pgbackups:capture -a costrecovery --expire
HEROKU_POSTGRESQL_ONYX_URL (DATABASE_URL) ----backup---> b007
?[0KCapturing... doneB -
?[0KStoring... done
Run Code Online (Sandbox Code Playgroud)
然后我切换到我要复制数据库的应用程序目录,并按照heroku列出的说明进行操作.问题是我不知道它是否不起作用,因为它们是一个错误,或者是因为我没有正确解释说明,这是完全可能的.首先,我将列出来自heroku的开发站点的指令,然后列出我尝试过的命令.
HEROKUS说明
$ heroku pgbackups:restore DATABASE -a target-app \
`heroku pgbackups:url -a source-app`
Run Code Online (Sandbox Code Playgroud)
命令我已经尝试过了
$ heroku pgbackups:restore DATABASE_URL -a boiling-reef-2060 \
> heroku pgbackups:url -a costrecovery
! Backup not found
$ heroku pgbackups:restore HEROKU_POSTGRESQL_GREEN_URL -a boiling-reef-2060 \
> 'heroku pgbackups:url -a costrecovery'
! Backup not found
$ heroku pgbackups:restore DATABASE -a boiling-reef-2060 \
> 'heroku pgbackups:url -a costrecovery'
! Backup not found
$ …Run Code Online (Sandbox Code Playgroud) 我正在尝试将两个数组合并为一个哈希.
@sample_array = ["one", "Two", "Three"]
@timesheet_id_array = ["96", "97", "98"]
Run Code Online (Sandbox Code Playgroud)
我想将结果输出到名为@hash_array的哈希中.有没有一种简单的方法将两者组合在一个代码块中,这样如果你在最后调用puts,它在控制台中看起来就像这样
{"one" => "96", "Two" => "97", "Three" => "98"}
Run Code Online (Sandbox Code Playgroud)
我认为这可以用一行或两行代码完成.
我已升级到rails 3.2.13并且我正在迁移旧应用程序以在新环境中运行(ruby1.9.3).该应用程序与ruby192和rails 3.0.0运行良好.
我在尝试创建新记录时遇到此错误(消防员)
错误的参数数量(3个用于2)
这是我的表格代码
<%= form_for :fire_fighter, @fire_fighter, :url => { :action => "create" } do |f| %>
Run Code Online (Sandbox Code Playgroud)
基于阅读其他帖子,他们建议删除"fire_fighter",但它看起来像这样
<%= form_for :@fire_fighter, :url => { :action => "create" } do |f| %>
Run Code Online (Sandbox Code Playgroud)
这实际上允许页面呈现,但是当我尝试输入填充文本字段并在数据库中提交或创建记录时,我收到一条内置在应用程序中的错误消息:
所有字段都设置为字符串.
哦,显然我在提交之前填写了所有这些字段.所以现在我只是卡住了.
任何帮助将不胜感激.
我正在尝试查看哈希并将其值与现有字符串进行比较,然后在找到匹配项时我想输出其密钥.我试图在代码块中写这个并将结果输出到控制台.
officer.name = "Dave"
@hash = { "Tom" => "97", "Dave" => "98", "John" => "99" }
@hash.each { |key, value| do
if #{key} == officer.name
puts "id: #{value}"
else
puts "no match"
end
}
Run Code Online (Sandbox Code Playgroud)
现在我的控制台输出:
id: 97
no match
id: 98
no match
id: 99
no match
Run Code Online (Sandbox Code Playgroud)
我试图让它只输出#{value}的值,基于匹配的#{key},在这种情况下是Dave.所以对于上面的例子,我希望我的控制台只吐出数字98或"不匹配".