小编max*_*max的帖子

Ruby,exec,system和%x()或Backticks之间的区别

以下Ruby方法有什么区别?

exec,system%x()反引号

我知道它们用于通过Ruby以编程方式执行终端命令,但我想知道为什么有三种不同的方法来执行此操作.

ruby exec

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

在Chrome中重新启用window.alert

我意外地检查了Chrome中的"禁用来自此网站的提醒"框,现在我无法在我的localhost上运行任何window.alert.

我已经尝试重置高级设置,但没有运气.

javascript google-chrome

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

在Atom中注释掉代码块

我已经从Webstorm和RubyMine转移到Atom,我真的很想念Jetbrains编辑器中的一个功能,你可以选择一个代码块并按CMD+ -,它会在每行的开头添加特定于语言的注释字符.(#对于ruby.//对于js,/*对于css等).

是否有Atom的内置快捷方式或提供此功能的包?

atom-editor

151
推荐指数
9
解决办法
24万
查看次数

Rails 5 API Controller中未定义的实例方法"respond_to"

--api我创建的rails 5中有一个错误

NoMethodError (undefined method `respond_to' for #<Api::MyController:0x005645c81f0798>
Did you mean?  respond_to?):
Run Code Online (Sandbox Code Playgroud)

但是,在rails 4.2的文档中,它说http://edgeguides.rubyonrails.org/4_2_release_notes.html

respond_with和相应的类级别respond_to已被移动到响应者gem.将gem'responseders','〜> 2.0'添加到您的Gemfile中以使用它:

实例级的respond_to不受影响:

我正在调用实例方法.怎么了?

class ApplicationController < ActionController::API
end

# ...
class Api::MyController < ApplicationController

  def method1
    # ...
    respond_to do |format|
      format.xml { render(xml: "fdsfds") }
      format.json { render(json: "fdsfdsfd" ) }
    end
Run Code Online (Sandbox Code Playgroud)

ruby rest ruby-on-rails ruby-on-rails-5

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

NSDate()vs Swift中的NSDate.date()

我跟随Bloc.io Swiftris教程,他们通过以下方式初始化日期:

lastTick = NSDate.date()
Run Code Online (Sandbox Code Playgroud)

这导致编译错误:

'date()' is unavailable: use object construction 'NSDate()'
Run Code Online (Sandbox Code Playgroud)

哪个应该相等:

NSDate *lastTick = [NSDate date];
Run Code Online (Sandbox Code Playgroud)

(来自NSDate参考)

Apple是否将Swift界面更改为NSDate,因为我看过其他使用的示例NSDate.date

这只是NSDate还是你不能为任何Objective-C API调用类型方法?

cocoa objective-c nsdate ios swift

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

允许在没有参数的情况下使用Symfony2路径的斜杠?

acme_admin_dashboard:
    pattern:  /{_locale}/admin
    defaults: { _controller: AcmeBundle:Admin:dashboard }
Run Code Online (Sandbox Code Playgroud)

我希望这条路线可以在/en/admin/en/admin/.我怎么做到这一点?

yaml symfony

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

Devise控制器中"产生资源"的作用是什么?

我正在查看Devise代码并注意到大多数控制器都会产生正在创建的资源.

class Devise::RegistrationsController < DeviseController
  # ...
  def create
    build_resource(sign_up_params)

    resource.save
    yield resource if block_given?
    # ...
Run Code Online (Sandbox Code Playgroud)

这必须是某种可扩展性功能,但我真的不知道如何将块传递给控制器​​操作?

注意:这个问题是关于你如何在Rails请求周期中实际做,而不是关于Ruby中的块如何工作.

ruby-on-rails devise

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

RSpec 3.1 undefined方法`feature'for main:Object

我正在经历相当痛苦的升级到RSpec 3.1.我有几个功能规格在RSpec 2.99中有效提升:

undefined method `feature' for main:Object 
Run Code Online (Sandbox Code Playgroud)

我注意到我必须使用RSpec.describe我的其他规格,因为它们不再附加到主要对象.相同的功能要求是什么?

在我的功能中,我需要'rails_helper'

require 'rails_helper'
feature 'Facebook Authentiation' do
  ...
end
Run Code Online (Sandbox Code Playgroud)

投机/ rails_helper.rb

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rails/application'
# Add additional requires below this line. Rails is not loaded until this point!

ActiveRecord::Migration.maintain_test_schema!

RSpec.configure do |config|
  # If you're not using ActiveRecord, or you'd prefer not to run each of your …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails

14
推荐指数
2
解决办法
7475
查看次数

Rails 4中的ForbiddenAttributesError

我正在努力将遗留应用程序升级到rails 4,我得到了一个无法解释的(至少对我来说)ForbiddenAttributesError.

在使用它们创建一个新的实例之前,我已将这些参数列入白名单Station但由于某种原因我仍然可以使用 ForbiddenAttributesError.有没有办法获得有关哪个属性导致错误的更多信息?


**编辑.我正在使用Devise和CanCan.如果我删除load_and_authorize_resource错误消失了(和授权一样!).我在https://github.com/ryanb/cancan/issues/835上尝试过这些解决方案但没有用.


rspec spec/controllers/stations_controller_spec.rb

  1) StationsController POST 'create' invalid should not create a new record
     Failure/Error: post :create, :station => { :name => 'foo' }
     ActiveModel::ForbiddenAttributesError:
       ActiveModel::ForbiddenAttributesError
     # ./spec/controllers/stations_controller_spec.rb:67:in `block (5 levels) in <top (required)>'
     # ./spec/controllers/stations_controller_spec.rb:66:in `block (4 levels) in <top (required)>'

  2) StationsController POST 'create' valid should create a new record
     Failure/Error: before { post :create, :station => FactoryGirl.attributes_for(:station, :hw_id => rand(1000)) }
     ActiveModel::ForbiddenAttributesError:
       ActiveModel::ForbiddenAttributesError
     # …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails ruby-on-rails-4

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

在 OSX Catalina 上安装用于 gem 安装的 Ruby 开发工具

我知道这个问题有很多例子。我已经完成了这些答案中的所有内容,但 4 小时后却一无所获。

我正在尝试在 Catalina 10.15.7 上安装 gem 并获得非常流行的

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
Run Code Online (Sandbox Code Playgroud)

有了这个额外的背景

ERROR:  Error installing ffi:
    ERROR: Failed to build gem native extension.

    current directory: /Users/bmanica/.chefdk/gem/ruby/2.4.0/gems/ffi-1.13.1/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20200925-10024-qilctf.rb extconf.rb --with-cflags\=-save-temps\=obj\ -o\ tmp/a.o
Run Code Online (Sandbox Code Playgroud)

通过调用安装时

gem install ffi  -- --with-cflags="-save-temps=obj -o tmp/a.o"
Run Code Online (Sandbox Code Playgroud)

绕过 Catalina 严格的权限规则。

我刚刚下载了 XCode 和命令行工具:

> xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems macos-catalina

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