在rails 3中最简单的问题是"你确定要这么做吗?" 当用户点击链接时?
在这种情况下,链接用新值覆盖一些数据.这是一个简单的link_to(GET)回到相同的控制器方法,添加了param [].
我目前正在参加一个数据库课程,其中一个实验室问题让我难以理解如何实现上述内容,实际上,如果有可能的话.我试过搜索文档但是定义的事务方法很模糊.
这是我第一次尝试进行任何数据库操作而没有Rails的舒适毯,所以我有点迷失.我已经设法创建了一个与postgresql数据库的连接并且可以执行语句,我需要做的最后一件事就是根据一个简单的条件回滚一个事务.
请允许我向您展示代码:
require 'pg'
@conn = PG::Connection.open(:dbname => 'db_15_11_labs')
@conn.prepare('insert', 'INSERT INTO house (housenumber, street) VALUES ($1, $2) returning id')
@words = ["Foo", "Bar", "Bash", "Bang"]
def populate
100.times.each_with_index do |i|
# cycle through the @words array for street names, use i as house number
ins = @conn.exec_prepared('insert', [i, "#{@words1[i % 4]} street"])
end
end
Run Code Online (Sandbox Code Playgroud)
基本上,条件是如果返回的id(ins[0]['id']
)是偶数,则回滚事务.我想如果ins[0]['id'] % 2 == 0
我需要抛出某种异常,但我该如何做,更重要的是,如何将这些信息编码到文档中给出的语法中?
感谢您的时间.
编辑1
我现在设法获得了允许条件放在定义的事务中的语法,如下所示:
@conn.transaction do |conn|
ins = @conn.exec_prepared('insert', [i, "#{@words1[i …
Run Code Online (Sandbox Code Playgroud) 我想知道是否有人测试由cocoon动态添加的字段?
这是一个很好的节省时间,但动态添加的所有字段都有很长的数字添加到ID和名称.这意味着我必须跳过在页面上需要多个(一组)字段的测试.
我目前仍然坚持使用rails项目的(我希望是一个新的)问题(这是我的第一个rails项目,所以如果我错过了任何关键的话我会道歉).我已经在这里呆了几个小时,似乎找不到任何解决方案.我已经尝试过以下线程的解决方案但无济于事.
无法通过socket'/tmp/mysql.sock'连接到本地MySQL服务器(2)
无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器
列表还在继续,无论如何,有些线程与我的情况相似,其他人只是抓着稻草.让我快速概述一下我的情况.
我设法按照一些教程进行设置,包括Capistrano部署教程,直至:
$ rake RAILS_ENV=production db:schema:load
Run Code Online (Sandbox Code Playgroud)
这是我第一次遇到无法连接到本地MySQL服务器错误的地方.
如果我用--trace运行它,我得到以下输出:
** Invoke db:schema:load (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2)
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `initialize'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `new'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:16:in `mysql2_connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:277:in `new_connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:287:in `checkout_new_connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:235:in `block (2 levels) in checkout'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `loop'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `block in checkout'
/usr/share/ruby-rvm/rubies/ruby-1.9.2-p318/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection'
/usr/share/ruby-rvm/gems/ruby-1.9.2-p318@rails_3_2/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:308:in …
Run Code Online (Sandbox Code Playgroud) 我想知道是否有人知道如何做以下事情:
rails generate model Foo name:string, validates: {:name, uniqueness: true}
Run Code Online (Sandbox Code Playgroud)
也就是说,在声明具有某些属性的模型生成器的同时,使用一些rails魔术来同时添加您的验证.
ruby-on-rails generator models command-line-arguments ruby-on-rails-4
目前我在Rails 3中创建类似"体育管理和结果收集应用程序"的东西.在这个应用程序中,我需要创建几个练习本身可以有多个"结果类型"(心率,距离,公里,重复,...).并且应该可以按照我的首选顺序排列结果类型.所以,这是一种经典的多对多关系.
我提出了以下迁移:
class CreateExercises < ActiveRecord::Migration
def self.up
create_table :exercises do |t|
t.integer :user_id
t.string :name
t.text :beschreibung
t.integer :resulttype_id
t.boolean :active, :default => true
t.timestamps
end
end
def self.down
drop_table :exercises
end
end
class CreateResulttypes < ActiveRecord::Migration
def self.up
create_table :resulttypes do |t|
t.string :name
t.string :einheit
t.text :beschreibung
t.timestamps
end
end
def self.down
drop_table :resulttypes
end
end
class CreateExercisesResulttypesJoin < ActiveRecord::Migration
def self.up
create_table :exercises_resulttypes, :id => false do |t|
t.integer "exercise_id"
t.integer "resulttype_id"
end
add_index :exercises_resulttypes, …
Run Code Online (Sandbox Code Playgroud) 我之所以这样问,主要是出于好奇,因为可以复制代码,但此刻刻意陷入困境,重复使我感到肮脏,而我在文档中找不到它。
假设我有一个rect = fabric.Rect
,我想添加一个监听器,例如说,移动并修改它们以完成相同的操作:
rect.on('moving', function() {
console.log('moving or modified');
});
rect.on('modified', function() {
console.log('moving or modified');
});
Run Code Online (Sandbox Code Playgroud)
有可能以某种方式将它们结合起来吗?
我是JS的新手,所以这在JS中可能是一件很简单的事情,但是我还没有遇到过,但是再说一次,在我所见过的Fabric文档中没有提到。
用这个把我的头发拉出来之后,我恐怕不得不再把那些更明智的知识转过来了.....
好的,这就是问题,我正在关注以下两个railscast:
我的设置:
Ubuntu Server 12.04
nginx
unicorn
ruby 1.9.3p125
rails 3.2.2
据我所知,一切都被T(或茶或者也许是Tee,我从未见过这句话写过).现在,sit正在我的服务器上运行,但未加载样式表和javascript文件.它似乎与Rails 3.1 404相同的问题在加载公共/资产中存在的.css文件或样式表或JavaScript文件的Rails 404错误时出错.虽然第一个没有答案,但后者表明,Web服务器可能不会寻找静态资源,也许不应该这样做.
有人知道是什么原因引起的吗?
一些事实:
首先,我得到了一些关于预编译的令人讨厌的错误,并注意到我的个人css/js文件已经缩小为他们的应用程序对应物,因此我在ruby助手中更改了他们的声明以反映这一点.
当我改为config.serve_static_assets = true
in 时,应用程序在本地工作config/environments/production.rb
这是我的服务器上的生产.log的转储
Started GET "/main" for 92.237.28.149 at 2012-07-09 23:08:02 +0100
Processing by MainController#index as HTML
Rendered shared/_login_form.html.erb (0.4ms)
Rendered shared/_footer.html.erb (0.4ms)
Rendered shared/_details_form.html.erb (7.7ms)
Rendered main/index.html.erb within layouts/main_logged (17.1ms)
Completed 200 OK in 21ms (Views: 20.5ms | ActiveRecord: 0.0ms)
Compiled jquery.js (2ms) (pid 8253)
Compiled …
Run Code Online (Sandbox Code Playgroud)好的,所以我只是将我的第一个项目从 Rails 3 迁移到 Rails 4,该项目正在开发中,因此某些链接仅用于内容。
在 Rails 3 中,我可以这样做:
link_to "To be added", {:controller => "#", :action => "#"}
Run Code Online (Sandbox Code Playgroud)
这会给我一个我可以设置样式等的虚拟链接。由于路由错误,这在 Rails 4 中不起作用:
No route matches {:action=>"#", :controller=>"#"}
Run Code Online (Sandbox Code Playgroud)
可能只是我目前睡眠不足,但我似乎无法找到解决此问题并实现相同功能的体面方法。
ruby ×2
capybara ×1
cocoon-gem ×1
confirmation ×1
fabricjs ×1
generator ×1
javascript ×1
link-to ×1
modal-dialog ×1
models ×1
mysql ×1
nginx ×1
pg ×1
postgresql ×1
rspec ×1
transactions ×1
ubuntu ×1
ubuntu-12.04 ×1
unicorn ×1