小编gio*_*gio的帖子

mysql还原到不同的数据库

我使用以下命令备份我的生产数据库:

mysqldump -u root --opt --skip-extended-insert --databases my_production_db
Run Code Online (Sandbox Code Playgroud)

生成的转储文件在顶部附近有以下行:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `my_production_db `;
Run Code Online (Sandbox Code Playgroud)

为了将数据库恢复到不同的目的地,即.my_debvelopment_db我必须打开转储文件并编辑数据库命名的位.

然后我跑:

mysql -u root  -p <password> < mydumpfile
Run Code Online (Sandbox Code Playgroud)

我还没想出另一种方法.

随着数据库变大,这变得不切实际.

我错过了什么吗?不能我以某种方式指定我想要恢复数据库的位置?我需要一个不同的备份命令吗?

mysql mysqldump

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

rake任务因US-ASCII中的无效字节序列而失败

在升级到ruby 1.9.3之后,我的一个应用程序工作正常,但是当我尝试使用capistrano进行部署时,我尝试转换的第二个应用程序在"assets:precompile"阶段失败.这是堆栈跟踪:

    rake aborted!
    rake aborted!
    invalid byte sequence in US-ASCII
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:88:in `load_rakefile'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:72:in `block in run'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@global/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@rails3211/bin/ruby_noexec_wrapper:14:in `eval'
    /Users/george/.rvm/gems/ruby-1.9.3-p392@rails3211/bin/ruby_noexec_wrapper:14:in `<main>'    
Run Code Online (Sandbox Code Playgroud)

我已经阅读了很多帖子并尝试了几个建议,但无济于事.我尝试将以下内容添加到我的gemfile顶部:

if RUBY_VERSION =~ /1.9/
  Encoding.default_external = Encoding::UTF_8
  Encoding.default_internal = Encoding::UTF_8
end
Run Code Online (Sandbox Code Playgroud)

但它没有任何区别.

我检查了LANG和LC_ALL环境变量,如下所示

$ echo $LC_ALL
en_NZ.UTF-8

$ echo $LANG
en_NZ.UTF-8
Run Code Online (Sandbox Code Playgroud)

我恐怕我根本不理解这个消息,我不知道如何识别有问题的文件.

我不能运行任何rake任务 - 它给出了同样的错误.

请注意,我可以在开发模式下完美地运行应用程序.

ruby rake ruby-on-rails bundler asset-pipeline

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

如何将多个SLF4J绑定排除到LOG4J

我收到了错误

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/george/.gradle/caches/artifacts-26/filestore/org.apache.logging.log4j/log4j-slf4j-impl/2.0-beta8/jar/15984318e95b9b0394e979e413a4a14f322401c1/log4j-slf4j-impl-2.0-beta8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/george/.gradle/caches/artifacts-26/filestore/org.slf4j/slf4j-log4j12/1.5.0/jar/aad1074d37a63f19fafedd272dc7830f0f41a977/slf4j-log4j12-1.5.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle文件中,我有以下行包含jar log4j-slf4j-impl-2.0-beta8.jar(我想绑定到LOG4J2)

 compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.0-beta8' 
Run Code Online (Sandbox Code Playgroud)

在依赖项目中的另一个build.gradle文件中,我有多行类似于以下内容:

 compile 'dcm4che:dcm4che-core:2.0.23'
Run Code Online (Sandbox Code Playgroud)

现在dcm4che包含对log4j版本1(slf4j-log4j12)的依赖,因此它包含在整个项目中.

以下是Gradle依赖关系树的片段:

|    +--- dcm4che:dcm4che-core:2.0.23
|    |    \--- org.slf4j:slf4j-log4j12:1.5.0
|    |         +--- org.slf4j:slf4j-api:1.5.0 -> 1.7.5
|    |         \--- log4j:log4j:1.2.13 -> 1.2.14
Run Code Online (Sandbox Code Playgroud)

我已经阅读了警告中建议的链接 ,但我无法弄清楚如何使用我想要的jar将我的应用程序绑定到log4j2.关于依赖管理的Gradle文档并没有真正使它更清楚.

java logging slf4j gradle log4j2

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

Capistrano 3是否仍然将Rails日志放在共享/日志中

我已升级到Capistrano 3并在新服务器上成功部署了多个Rails应用程序.

以前使用Capistrano 2部署Rails日志神奇地去了/myapp/shared/log/production.log

通过我的Cap3部署,日志位于app文件夹myapp/current/log/production.log中

这是故意还是我错过了设置?是否有一些特殊的方式来设置它们,以便他们去/共享/日志?

capistrano ruby-on-rails

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

用Rails.root替换RAILS_ROOT

我想用Rails.root替换已弃用的RAILS_ROOT,作为使应用程序准备好升级到Rails 3的过程的一部分.该应用程序当前运行的版本为2.3.14,最初是在1.2中创建的

在我的boot.rb文件的开头是行:

RAILS_ROOT ="#{File.dirname(FILE)}/.."除非定义?(RAILS_ROOT)

我不能在这里替换Rails.root,因为Rails是未定义的.

设置Rails.root的推荐方法是什么?

我不认为我提出的问题很清楚.

  • 我知道Rails.root已经存在于Rails 2中.
  • 我可以非常愉快地在我的代码中使用Rails.root.
  • 但我不知道如何在启动时设置Rails.root.我目前似乎被设置在boot.rb顶部的行:

    RAILS_ROOT ="#{File.dirname(FILE)}/.."除非定义?(RAILS_ROOT)

  • 我只能更改该行以使用Rails.root,因为我将得到错误:

    ../config/boot.rb:3:未初始化的常量Rails(NameError)

谢谢乔治

ruby-on-rails

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

为什么Relation.size有时会在Rails 4中返回Hash

我可以用两种不同的方式运行查询来返回一个Relation.

当我询问Relation的大小时,一个查询按预期给出一个Fixnum,另一个给出一个Hash,它是Relations Group By语句中每个值的哈希值,每个值的出现次数.

在Rails 3中,我认为它总是返回一个Fixnum,因为我从来没有遇到过Rails 4的问题,它有时会返回一个Hash和一个像Rel.size.zero这样的语句?给出错误:

未定义的方法`零?' for {}:Hash

我最好只使用.blank吗?检查零记录以确保避免意外错误的方法?

这是一段代码,包含两个查询和生成的日志的looging语句

码:

assessment_responses1=AssessmentResponse.select("process").where("client_id=? and final = ?",self.id,false).group("process")
logger.info("-----------------------------------------------------------")
logger.info("assessment_responses1.class = #{assessment_responses1.class}")
logger.info("assessment_responses1.size.class = #{assessment_responses1.size.class}")
logger.info("assessment_responses1.size value = #{assessment_responses1.size}")

logger.info("............................................................")

assessment_responses2=AssessmentResponse.select("distinct process").where("client_id=? and final = ?",self.id,false)
logger.info("assessment_responses2.class = #{assessment_responses2.class}")
logger.info("assessment_responses2.size.class = #{assessment_responses2.size.class}")
logger.info("assessment_responses2.size values = #{assessment_responses2.size}")
logger.info("-----------------------------------------------------------")
Run Code Online (Sandbox Code Playgroud)

LOG

-----------------------------------------------------------
assessment_responses1.class = ActiveRecord::Relation::ActiveRecord_Relation_AssessmentResponse
   (0.5ms)  SELECT COUNT(`assessment_responses`.`process`) AS count_process, process AS process FROM `assessment_responses` WHERE `assessment_responses`.`organisation_id` = 17 AND (client_id=43932 and final = 0) GROUP BY process
assessment_responses1.size.class = Hash
  CACHE (0.0ms) …
Run Code Online (Sandbox Code Playgroud)

activerecord arel ruby-on-rails-4

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

无法在Mountain Lion上安装带有RVM的OpenSSL软件包

我在山狮的干净安装上设置了RVM,Rails等.我遵循指南" 如何在Snow Leopard,Lion和Mountain Lion上安装Xcode,Homebrew,Git,RVM和Ruby 1.9.3 ".

用Ruby(1.9.3)安装RVM之后我做了一个rvm requirement看起来我应该使用Homebrew安装apple-gcc42:

Homebrew:

  If you are using Homebrew, you can install the apple-gcc42 and required libraries from homebrew/dupes:

      brew update
      brew tap homebrew/dupes
      brew install autoconf automake apple-gcc42
      rvm pkg install openssl
Run Code Online (Sandbox Code Playgroud)

当我进入OpenSSL包安装时,我收到以下错误,不知道如何继续:

marvin:~ george$ rvm --skip-autoreconf pkg install openssl
Fetching openssl-1.0.1c.tar.gz to /Users/george/.rvm/archives
######################################################################## 100.0%
Downloaded archive checksum did not match, archive was removed!
If you wish to continue with not matching download add '--verify-downloads 2' after the command.


Please note …
Run Code Online (Sandbox Code Playgroud)

ruby openssl rvm ruby-on-rails-3 osx-mountain-lion

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

为什么RubyMine和终端中的gem环境不同

我的终端宝石环境与我的Rubymine环境不匹配.在终端,它给出:

  - EXECUTABLE DIRECTORY: /Users/george/.gem/ruby/1.9.3/bin
  - SPEC CACHE DIRECTORY: /Users/george/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-12
  - GEM PATHS:
     - /Users/george/.gem/ruby/1.9.3
     - /Users/george/.rubies/ruby-1.9.3-p392/lib/ruby/gems/1.9.1
Run Code Online (Sandbox Code Playgroud)

而在RubyMine中它给出:

EXECUTABLE DIRECTORY: /Users/george/.rubies/ruby-1.9.3-p392/bin
SPEC CACHE DIRECTORY: /Users/george/.gem/specs
RUBYGEMS PLATFORMS:
  ruby
  x86_64-darwin-12
GEM PATHS:
   /Users/george/.rubies/ruby-1.9.3-p392/lib/ruby/gems/1.9.1
   /Users/george/.gem/ruby/1.9.1
Run Code Online (Sandbox Code Playgroud)

似乎有关于宝石位置的混淆,我不知道如何解决它.

我使用chruby来控制使用ruby-build安装的ruby版本该应用程序是Rails 3.2.17

终端和Rubymine的完整输出如下:

终奌站:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 1.9.3 (2013-02-22 patchlevel 392) [x86_64-darwin12.5.0]
  - INSTALLATION DIRECTORY: /Users/george/.gem/ruby/1.9.3
  - RUBY EXECUTABLE: /Users/george/.rubies/ruby-1.9.3-p392/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/george/.gem/ruby/1.9.3/bin
  - SPEC CACHE DIRECTORY: /Users/george/.gem/specs
  - RUBYGEMS PLATFORMS:
    - …
Run Code Online (Sandbox Code Playgroud)

gem rubygems ruby-on-rails rubymine

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

在版本 4.4.6 中禁用 ckeditor 上下文菜单

我在 Rails4 项目中使用 ckeditor。我尝试了 ckeditor gem 和 ckeditor_rails gem 来提供 ckeditor 库。

这里有多个帖子,人们希望删除 ckeditor 上下文菜单,以便可以显示本机浏览器上下文菜单。

这通常是为了启用浏览器拼写检查器而不是 ckeditor 付费/广告拼写检查器。

如何删除 ckeditor-4-3 中的上下文菜单

ckeditor-3-6-3-启用浏览器拼写检查并禁用上下文菜单

如何禁用 ckeditor 上下文菜单/20229730#20229730

第三个链接的回复最多,但没有一个被普遍接受。一般来说,答案是通过将以下内容放入 ckeditor config.js 中来删除 contextmenu 插件

config.removePlugins = 'contextmenu';
Run Code Online (Sandbox Code Playgroud)

还有人建议上下文菜单依赖于其他插件,并且不同的人也添加了许多其他要删除的插件。

一篇有用的文章建议在控制台中运行以下代码来建立依赖关系。

$.each(CKEDITOR.plugins, function(k, v){ 
    v.requires && console.log("Plugin '" + k + "' requires: " + v.requires) 
})
Run Code Online (Sandbox Code Playgroud)

这似乎工作得很好,并表明 tabletools 和 liststyle 插件依赖于上下文菜单。所以我们最终得到

config.removePlugins = 'liststyle,tabletools,contextmenu';
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会禁用我正在使用的 ckeditor 版本中的上下文菜单(4.4.6 通过在 config.js 中添加警报(CKEDITOR.version)建立)

最后建议在config.js中使用以下代码

CKEDITOR.on('instanceReady', function(ev) {
   ev.editor.editable().addClass('cke_enable_context_menu')
});
Run Code Online (Sandbox Code Playgroud)

没有关于如何禁用上下文菜单的建议,但无论如何,这对我来说没有什么区别。

对我来说,这是一个令人震惊的问题,因为 ckeditor 上下文菜单隐藏了浏览器拼写建议,并且它包含的剪切和粘贴选项实际上不起作用,而只是打开浏览器对话框。

您的浏览器安全设置不允许编辑器自动执行复制操作。请使用键盘(Ctrl/Cmd+C)。

在所有其他方面,ckeditor 似乎确实是功能最好的编辑器。

javascript ckeditor ruby-on-rails-4

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

单击时打开eternicode datepicker,而不是焦点

eternicode Twitter的引导日期选择一旦弹出<input>场它连接到得到关注,你可以通过按Tab键到日期选择器领域上看到官方演示页面.

相反,我希望它只在点击时打开.理想情况下,日期选择器只会在点击日历图标时弹出.

如何防止它突然出现焦点?

datepicker twitter-bootstrap bootstrap-datepicker

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

当访问取决于父模型时使用 Pundit 的正确方法

我有一个客户端模型,其中有_many 联系人

用户是否可以创建、更新或编辑取决于客户端而不是联系人,而销毁取决于联系人本身。

在 ContactPolicy 类中,我可以简单地检查 @contact.client 以查看用户是否可以访问,这很好。

但是,对于 List 方法,我没有一个联系人,而是一个 @client.contacts 列表,因此没有简单的方法可以告诉 Pundit 允许什么。

我不确定 Pundit 应该如何处理这个问题。

请注意,我不想要范围,因为它是是或否取决于客户记录

ruby-on-rails pundit

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

我可以使用审计gem进行审计,而不是存储更改

我已经开始在Rails 3应用程序中使用audited gem.

它工作正常,但我有一个问题,我有一个大文本列的表.我希望在此列中的数据保存在审计表中的"audited_changes"作为表将在尺寸上吹出来.

我知道我可以用以下内容来禁止对该列的审计:except =>:my_big_text_column

因此,在总结我想知道用户编辑文本,但我希望保存每次的文本的副本.如果我取消对该列的审核,如果他们编辑该列,我将完全没有审核.

ruby-on-rails

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