小编Daz*_*win的帖子

rails 3,用户点击链接时如何添加简单的确认对话框

在rails 3中最简单的问题是"你确定要这么做吗?" 当用户点击链接时?

在这种情况下,链接用新值覆盖一些数据.这是一个简单的link_to(GET)回到相同的控制器方法,添加了param [].

ruby-on-rails modal-dialog confirmation ruby-on-rails-3

8
推荐指数
3
解决办法
1万
查看次数

如何使用PG Ruby Gem有条件地回滚事务

我目前正在参加一个数据库课程,其中一个实验室问题让我难以理解如何实现上述内容,实际上,如果有可能的话.我试过搜索文档但是定义的事务方法很模糊.

这是我第一次尝试进行任何数据库操作而没有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)

ruby postgresql transactions pg

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

使用rspec和capybara通过cocoon动态添加测试字段

我想知道是否有人测试由cocoon动态添加的字段?

这是一个很好的节省时间,但动态添加的所有字段都有很长的数字添加到ID和名称.这意味着我必须跳过在页面上需要多个(一组)字段的测试.

rspec ruby-on-rails capybara cocoon-gem

6
推荐指数
2
解决办法
2822
查看次数

Rails应用程序无法连接到mysql,无法通过socket'/var/run/mysqld/mysql.sock'连接到本地MySQL服务器(2)(Mysql2 :: Error)

我目前仍然坚持使用rails项目的(我希望是一个新的)问题(这是我的第一个rails项目,所以如果我错过了任何关键的话我会道歉).我已经在这里呆了几个小时,似乎找不到任何解决方案.我已经尝试过以下线程的解决方案但无济于事.

通过套接字连接到本地MySQL服务器

无法通过套接字连接到本地MySQL服务器

无法通过socket'/tmp/mysql.sock'连接到本地MySQL服务器(2)

无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器

列表还在继续,无论如何,有些线程与我的情况相似,其他人只是抓着稻草.让我快速概述一下我的情况.

  • 该项目是在mac上开发的
    • 我最近建立了一个测试服务器作为学习部署过程的手段
    • 服务器正在运行Ubuntu Server 12.04

我设法按照一些教程进行设置,包括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)

mysql ubuntu ruby-on-rails

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

Rails生成包含验证的模型?

我想知道是否有人知道如何做以下事情:

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

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

"协会期望,得到字符串"与多对多关联

目前我在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)

ruby ruby-on-rails ruby-on-rails-3

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

fabric.js将事件侦听器分配给多个事件的对象

我之所以这样问,主要是出于好奇,因为可以复制代码,但此刻刻意陷入困境,重复使我感到肮脏,而我在文档中找不到它。

假设我有一个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文档中没有提到。

javascript ruby-on-rails fabricjs

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

Rails 3.2.2在使用capistrano部署后在样式表和js资产上获得404

用这个把我的头发拉出来之后,我恐怕不得不再把那些更明智的知识转过来了.....

好的,这就是问题,我正在关注以下两个railscast:

在生产中部署到vps
资产管道

我的设置:
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 = truein 时,应用程序在本地工作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)

ruby-on-rails nginx unicorn ruby-on-rails-3.2 ubuntu-12.04

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

你如何在 Rails 4 中实现一个虚拟的 link_to

好的,所以我只是将我的第一个项目从 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-on-rails rails-routing link-to ruby-on-rails-4

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