小编Vik*_*tor的帖子

RubyMine在Mac OS上的Docker中没有看到来自bundle的gems

我正在使用Docker镜像和一些指定的环境变量,例如GEM_HOMEBUNDLE_PATH.

RubyMine连接到远程Docker SDK就好了,但我看不到添加的宝石bundler,即使它bundler本身就存在.我的探查器无法配置项目因此,所以我被迫从中启动所有任务和服务器Terminal.

Ruby SDK和Gems

如何让我的bundle宝石可见?


UPD

它实际上与自定义bundle宝石路径有关.改变后,宝石消失了gem list.RubyMine从那里获取宝石,因此无法找到那些宝石.

有人知道如何gem list使用bundler自定义宝石路径吗?


UPD 2

即使添加bundle宝石后gem list我也有同样的问题:(

ruby ruby-on-rails rubymine bundler docker

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

如何使用Django REST Framework返回生成的文件下载?

我需要将生成的文件下载作为Django REST Framework响应返回.我尝试了以下方法:

def retrieve(self, request, *args, **kwargs):
    template = webodt.ODFTemplate('test.odt')
    queryset = Pupils.objects.get(id=kwargs['pk'])
    serializer = StudentSerializer(queryset)
    context = dict(serializer.data)
    document = template.render(Context(context))
    doc = converter().convert(document, format='doc')
    res = HttpResponse(
        FileWrapper(doc),
        content_type='application/msword'
    )
    res['Content-Disposition'] = u'attachment; filename="%s_%s.zip"' % (context[u'surname'], context[u'name'])
    return res
Run Code Online (Sandbox Code Playgroud)

但它返回一个msword文档json.

如何让它开始下载为文件?

python django ms-word download django-rest-framework

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

设计:未允许的参数

我不是为什么,但以下代码停止工作(我甚至没有注意到它是如何发生的)

的routes.rb

devise_for :users, components: {registrations: 'registrations', sessions: 'sessions'}
Run Code Online (Sandbox Code Playgroud)

registations_controller.rb

class RegistrationsController < Devise::RegistrationsController
  before_filter :configure_permitted_parameters

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up).push(:name, :surname, :username, :email, :avatar)
    devise_parameter_sanitizer.for(:account_update).push(:name, :surname, :email, :avatar)
  end

end
Run Code Online (Sandbox Code Playgroud)

正如我所说的,之前每个人都工作得很好,但现在我得到了:

Processing by Devise::RegistrationsController#create as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"lvuPOmTRqv6XUQ/O1g4Q9VNvzD7DgGCHocY/OlAvKHEIvWAHvlS982hxSZZzzAESCpmL5QTUcTLw/c9ME/sUFQ==", "user"=>{"name"=>"John", "surname"=>"Doe", "username"=>"foobar", "email"=>"foobar@example.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Register"}
Unpermitted parameters: name, surname, email
Run Code Online (Sandbox Code Playgroud)

Cofiguration:

  • Rails 4.2.5
  • 设计3.5.6

PS:现在我终于理解为什么我应该用单元测试覆盖我的代码并使用Travis CI

ruby ruby-on-rails devise

11
推荐指数
2
解决办法
8188
查看次数

Angular2:如果API返回错误,如何重定向?

在我的服务中,我想描述在未经授权的情况下重定向用户时的行为.

export class MessagesService {
    constructor (private http: Http) {}

    private _usersUrl = '/users.json';  // URL to web api


    getUsers() {
        return this.http.get(this._usersUrl)
            .map(res => <User[]> res.json().data)
            .catch(this.handleError);
    }

    private handleError (error: Response) {

        if (error.status == 401) {
            // How do I tell Angular to navigate LoginComponent from here?
        } else {
            return Observable.throw(error.json().error || 'Server error');
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 它甚至可能吗?
  • 这是一个好习惯吗?
    • 如果是,我该怎么做?
    • 如果不是,我怎么能这样做?

typescript angular2-routing angular2-services angular

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

未初始化的常量Mysql2 :: Client :: SECURE_CONNECTION

由于发生错误,我无法运行Rails项目 mysql2

这篇帖子对我没有帮助:耙子流产了!未初始化的常量Mysql2

它也适用于我的同事计算机,因此排除了项目本身的问题.

这是控制台输出:

$ rails s
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:94:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'mysql2'. (Bundler::GemRequireError)
Gem Load Error is: uninitialized constant Mysql2::Client::SECURE_CONNECTION
Backtrace for gem load error is:
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/mysql2-0.3.14/lib/mysql2/client.rb:12:in `<class:Client>'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/mysql2-0.3.14/lib/mysql2/client.rb:2:in `<module:Mysql2>'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/mysql2-0.3.14/lib/mysql2/client.rb:1:in `<top (required)>'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/mysql2-0.3.14/lib/mysql2.rb:10:in `require'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/mysql2-0.3.14/lib/mysql2.rb:10:in `<top (required)>'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:91:in `require'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:91:in `block (2 levels) in require'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:86:in `each'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:86:in `block in require'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:75:in `each'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler/runtime.rb:75:in `require'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/bundler-1.13.6/lib/bundler.rb:106:in `require'
/home/duke/RubymineProjects/*******/*******/config/application.rb:7:in `<top (required)>'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/railties-3.2.15/lib/rails/commands.rb:53:in `require'
/home/duke/.rvm/gems/ruby-2.0.0-p648/gems/railties-3.2.15/lib/rails/commands.rb:53:in …
Run Code Online (Sandbox Code Playgroud)

ruby mysql ruby-on-rails

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

RSpec:无法加载此类文件 - teamcity/spec/runner/formatter/teamcity/formatter(LoadError)

此解决方案不适用于我:

在RubyMine中运行规范会导致"无法加载此类文件 - teamcity/spec/runner/formatter/teamcity/formatter(LoadError)"

以及这篇文章:

https://www.jetbrains.com/ruby/help/using-rspec-in-rails-applications.html

我使用的是Ubuntu 15.10,RubyMine 7.1,Ruby 2.2.3,Rails 4.2.5

当我试图启动RSpec时,Run 'spec:project它返回一个错误:

/home/duke/.rvm/rubies/ruby-2.2.3/bin/ruby -I/home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib:/home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-support-3.4.1/lib /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb
/home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `require': cannot load such file -- teamcity/spec/runner/formatter/teamcity/formatter (LoadError)
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `block in requires='
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `each'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `requires='
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in `each'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in `process_options_into'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:21:in `configure'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:101:in `setup'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:88:in `run'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:73:in `run'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:41:in `invoke'
    from /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/exe/rspec:4:in `<main>'
/home/duke/.rvm/rubies/ruby-2.2.3/bin/ruby -I/home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/lib:/home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-support-3.4.1/lib /home/duke/.rvm/gems/ruby-2.2.3/gems/rspec-core-3.4.1/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed

Process finished with exit code …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails

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

'ProductList'对象没有属性'object_list'

在我的ProductList课堂上,当我尝试get_context_data用另一种方法调用时,我收到一个错误'ProductList' object has no attribute 'object_list'

def get_context_data(self, **kwargs):
        c = super(ProductList, self).get_context_data(**kwargs)
        c['category'] = self.category
        c['category_menu'] = self.get_category_menu()
        c['filters'] = self.filters
        c['expanded_filters'] = self.get_expanded_filters()
        c['active_filters'] = self.get_active_filters()
        c['category_list'] = self.category.get_children().filter(in_lists=True)
        c['colors_list'] = self.get_colors_list(c['object_list'])
        return c

def get_queryset(self):

    data = self.get_context_data()
Run Code Online (Sandbox Code Playgroud)

是什么导致了这个错误?

我怎样才能进入object_list第二种方法?

django python-2.7

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

使用多态关联的Rails方法是什么?

我的Rails应用程序中的模型很少,它们是:

  1. 用户
  2. 照片
  3. 专辑
  4. 评论

我需要评论belog要么到PhotoAlbum,显然永远属于User.我将使用多态关联.

# models/comment.rb

class Comment < ActiveRecord::Base
  belongs_to :user
  belongs_to :commentable, :polymorphic => true
end
Run Code Online (Sandbox Code Playgroud)

问题是,Rails描述#create新评论行动的方式是什么.我看到两个选项.

1.描述每个控制器中的注释创建

但这不是一个干燥的解决方案.我可以为显示和创建注释创建一个常见的局部视图,但我将不得不重复自己为每个控制器编写注释逻辑.所以它不起作用

2.创建新的CommentsController

这是我猜的正确方法,但我知道:

要使其工作,您需要声明模型中的外键列和类型列,以声明多态接口

像这样:

# schema.rb

  create_table "comments", force: :cascade do |t|
    t.text     "body"
    t.integer  "user_id"
    t.integer  "commentable_id"
    t.string   "commentable_type"
    t.datetime "created_at",       null: false
    t.datetime "updated_at",       null: false
  end
Run Code Online (Sandbox Code Playgroud)

所以,当我编写非常简单的控制器时,它将接受来自远程表单的请求:

# controllers/comments_controller.rb

class CommentsController < ApplicationController
  def new
    @comment = Comment.new
  end

  def create
    @commentable = ??? …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails polymorphic-associations ruby-on-rails-4

4
推荐指数
2
解决办法
1247
查看次数

如何扩展MDL微调器?

有没有办法扩展MDL微调器?我试图改变它widhtheight属性,但它变得thiner.看一看:

CSS

width: 150px; 
height: 150px
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

css material-design-lite

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

ActionCable:从前端手动关闭连接

我不能手动关闭我的套接字.它仅在我关闭浏览器中的选项卡时退出.

Finished "/cable/" [WebSocket] for 127.0.0.1 at 2016-10-29 16:55:49 +0200
Run Code Online (Sandbox Code Playgroud)

但是当我打电话的时候

App.cable.subscriptions.remove(App.subscription)
Run Code Online (Sandbox Code Playgroud)

要么

App.subscription.unsubscribe()
Run Code Online (Sandbox Code Playgroud)

CommunityChannel正在调用方法"unsubscribed" ,但电缆仍然存在,我仍然可以在我的函数"print_socket"中打印它

如何手动关闭连接?

module ApplicationCable
  class Connection < ActionCable::Connection::Base

    identified_by :current_user

    def connect
      self.current_user = find_verified_user
    end

    protected

    def find_verified_user
      if current_user = User.find_by(id: cookies.signed[:user_id])
        current_user
      else
        reject_unauthorized_connection
      end
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-5 actioncable

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