小编Hol*_*ust的帖子

从插件包含控制器的方法

使用Rails的2.3.11,我创建管理平台是一个插件添加方法来ApplicationController.

我在插件中创建了以下模块:

module ApplicationControllerPatch
  def self.included(base) # :nodoc:
    base.class_eval do
      rescue_from AnException, :with => :rescue_method

      def rescue_method(exception)
        ...
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,如果我将此模块直接包含在application_controller.rb文件中,如下所示:

class ApplicationController < ActionController::Base
  include ApplicationControllerPatch

  ...
end
Run Code Online (Sandbox Code Playgroud)

一切正常,但是我想通过从插件本身包含这个模块来避免编辑核心源代码.到目前为止,如果我这样做:

ApplicationController.send(:include, ApplicationControllerPatch)
Run Code Online (Sandbox Code Playgroud)

直接来自这个模块文件(位于插件文件夹中).这将为请求正确加载,然后由控制器覆盖(我猜).

完成此任务的方法是什么?

ruby plugins ruby-on-rails redmine

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

基于 URL 中的参数的代理

我想使用 Apache HTTPd 作为代理服务器:

如果用户请求http://xxx?st=yyy选择的后端服务器应该是server1. 如果用户请求http://xxx(没有 st 参数),那么后端服务器应该是server2.

我想知道我需要如何配置 Apache 来实现这一点。

apache proxy

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

Rails路由像github

我正在使用Rails 3.2

我希望路由几乎和github一样,所以:

root/(username)
root/(username)/(projectname)
root/(username)/(projectname)/issus
Run Code Online (Sandbox Code Playgroud)

等等

我正在尝试这样的事情:

resources :publishers do
  resources :magazines do
    resources :photos
  end
end 
Run Code Online (Sandbox Code Playgroud)

但是这给出了这样的路线:

/publishers/1/magazines/2/photos/3
Run Code Online (Sandbox Code Playgroud)

我正在看的一个项目做了以下似乎有效,但似乎不适合我.

resources :projects, :constraints => { :id => /[^\/]+/ }, :except => [:new, :create, :index], :path => "/" do
member do
  get "team"
  get "wall"
  get "graph"
  get "files"
end

resources :wikis, :only => [:show, :edit, :destroy, :create] do
  member do
    get "history"        
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-routing ruby-on-rails-3 ruby-on-rails-3.2

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

Git拉不拉最新版本

我们使用Github进行组织中的源代码控制。多个开发人员不断将其更改合并到远程源存储库。就我而言,两周后我克隆了存储库,此后又进行了多次合并。现在,我试图使用该代码的最新版本。

git pull origin master
Run Code Online (Sandbox Code Playgroud)

我肯定知道自从我上次克隆以来已经进行了多次合并,但是pull命令告诉我它已经是最新的了。我在这里想念什么吗?

git github

5
推荐指数
3
解决办法
8962
查看次数

安装sqlite3(1.3.7)时发生错误,Bundler无法继续

我使用该命令时收到此错误git push heroku master.

$ git push heroku master
Counting objects: 126, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (110/110), done.
Writing objects: 100% (126/126), 36.61 KiB, done.
Total 126 (delta 19), reused 0 (delta 0)

-----> Removing .DS_Store files
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.3.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
       Fetching gem metadata from https://rubygems.org/.........
       Fetching gem metadata from https://rubygems.org/..
       Installing rake (10.0.3) …
Run Code Online (Sandbox Code Playgroud)

macos ruby-on-rails heroku

5
推荐指数
2
解决办法
8630
查看次数

厨师无法创建cron

我尝试了http://docs.opscode.com/resource_cron.html#examples给出的最简单的例子

    cron "name_of_cron_entry" do
        hour "8"
        weekday "6"
        mailto "admin@opscode.com"
        action :create
    end
Run Code Online (Sandbox Code Playgroud)

我使用刀ssh使配方在厨师客户端上运行,客户端给出错误:

Error executing action create on resource cron[name_of_cron_entry]
Error updating state of name_of_cron_entry, exit: 1
Run Code Online (Sandbox Code Playgroud)

以前有人遇到过同样的问题吗?有解决方案吗

cron chef-infra

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

测试厨房不会参考当地的食谱

我正在尝试测试一本取决于其他三本本地食谱的食谱.我的目录结构如下所示:

/cookbooks/
  cookbook_test/
    recipes 
    templates 
    metadata.rb
  cookbook_dep1/
  cookbook_dep2/
  cookbook_dep3/
Run Code Online (Sandbox Code Playgroud)

我正在尝试测试的cookbook中的元数据文件(cookbook_test)只是提到了另外三个相关的菜谱依赖:

depends cookbook_dep1
depends cookbook_dep2
depends cookbook_dep3
Run Code Online (Sandbox Code Playgroud)

但是在运行时,kitchen converge default-ubuntu-1204我得到以下内容:

[2014-03-03T18:05:13+00:00] ERROR: Cookbook cookbook_devp1 not found. If you're loading cookbook_devp1 from another cookbook, make sure you configure the dependency in your metadata       
[2014-03-03T18:05:13+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)       
Run Code Online (Sandbox Code Playgroud)

我在网上唯一能找到的就是我应该使用berkshelf.有没有其他方法只用测试厨房来引用本地食谱?

integration-testing cookbook chef-infra vagrant test-kitchen

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

陷入Sudoku回溯解算器(Java)

我一直试图在Sudoku回溯解算器中弄清楚我的错误三天.问题来自leetcode Sudoku Solver.

我的解算器基于附图中的推论.问题是即使从root到leaf的路径无效,我的主板也会被更改.

换句话说,在经过无效路径后,它尝试的值将固定在我的原始板上.但是,我只更新我的原始板,当它的子节点返回true时(请参阅辅助方法中的部分://输入数字并生成子节点).

基本上,对于每个'.',我生成从1到9的所有可能性,构造一个填充当前''的临时板.有一种可能性,然后调用下一个'.'的助手.临时板.我知道因为空间成本而为每个可能的孩子存储相同尺寸的boardTemp并不好,但我现在主要关心的是在优化成本之前先解决问题.

总而言之,即使所有孩子都无效,为什么我的董事会会改变?

例如,基于初始板

..9748 ...; 7 ........; .2.1.9 ...;

..7 ... 24; .64.1.59; 0.98 ... 3 ..;

... 8.3.2; ........ 6; ... 2759 ..;

我跑完后得到了最终结果:

139748652; 745326189; 826159437;

35769.24; .64.1.59; 0.98 ... 3 ..;

... 8.3.2; ........ 6; ... 2759 ..;

public void sudokuSolver(char[][] board) {
    for (int i = 0 ; i < board.length ; i++) {
        for (int j = 0 ; j < board.length ; j++) {
            if (board[i][j] == '.') …
Run Code Online (Sandbox Code Playgroud)

java parameters recursion sudoku backtracking

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

当我运行“ gem list”时,bundler是什么意思(默认值:1.16.2)?什么是(失败)部分?

我收到此错误消息:

.rvm / gems / ruby​​-2.5.1 / bin / ruby​​_executable_hooks:24:在`<main>'中

我重新安装了Ruby

rvm reinstall ruby-2.5.1
Run Code Online (Sandbox Code Playgroud)

它给出一个错误信息:

Error running '__rvm_with ruby-2.5.1 gemset_pristine', please read
/home/zoli/.rvm/log/1533209563_ruby-2.5.1/gemset.pristine-ruby-2.5.1.log
Run Code Online (Sandbox Code Playgroud)

这是我第一次遇到此错误的方式:

$ gem list bun
*** LOCAL GEMS ***
bundler (default: 1.16.2)
Run Code Online (Sandbox Code Playgroud)

宝石列表提供了宝石列表-一些包括(默认值:...)部分。这是什么意思?我遇到了这个Github线程:bundler https://github.com/bundler/bundler/issues/6290 ,它具有相同的问题:

(default: 1.16.1, default: 1.16.0)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用Ruby gems运行命令时,它给出了一个错误。

如何在不使用任何二进制文件的情况下用RVM安装Rubies?这个(默认)部分是什么意思?

ruby rvm

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

Rails - request.env['HTTP_X_FORWARDED_FOR'] 和 request.remote_ip 之间的区别

我正在向现有的 RoR 应用程序添加一些更改,并发现request.env['HTTP_X_FORWARDED_FOR']返回的nil. 我将其更改为request.remote_ip并获得了客户端的正确 IP 地址。

为什么request.remote_ip返回时request.env['HTTP_X_FORWARDED_FOR']返回一个IP nil?它们之间有什么区别?我怎样才能request.env['HTTP_X_FORWARDED_FOR']工作,我应该使用哪一个(最佳实践)?

ruby ruby-on-rails

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