小编eco*_*gic的帖子

如何检查字符串中的值是否为IP地址

当我这样做

ip = request.env["REMOTE_ADDR"]
Run Code Online (Sandbox Code Playgroud)

我得到了客户端的IP地址.但是如果我想验证变量中的值是否真的是IP呢?我怎么做?

请帮忙.提前致谢.抱歉,如果重复这个问题,我没有努力找到它......

编辑

那么IPv6 IP呢?

ruby string ip ruby-on-rails ipv6

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

在Phusion Passenger上使用Capistrano设置Ruby on Rails应用程序环境

我有2个环境,制作舞台演出,我正在使用Capistrano和capistrano-ext gem.

当我使用Capistrano 部署到登台并重新启动乘客时,我希望部署的应用程序在暂存中运行,但它在默认生产中运行

我尝试过设置:

set :rails_env, "staging"
Run Code Online (Sandbox Code Playgroud)

在我的部署配方中,但这没有任何效果.

我知道这可以通过在Apache中设置虚拟主机来完成,但我使用的是共享主机,因此无法访问.我的主人提供以下建议:

将以下内容添加到environment.rb:ENV ['RAILS_ENV'] ='staging'

但这并没有帮助我使用Capistrano自动完成这个过程.

deployment capistrano ruby-on-rails passenger

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

Ruby on rails:respond_to和respond_with之间有什么区别?

respond_to和之间有什么区别respond_with?他们在做什么?任何人都可以用输出截图发布示例吗?

谢谢.

ruby-on-rails

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

如何让scaffold生成另一个部分视图模板文件

我正在尝试自定义我的脚手架生成器,我想在同一目录中为视图设置一个新的部分,特别_item在index和show中都被调用.我可以获得所有模板,但我无法生成此文件

rails g scaffold foo name:string
Run Code Online (Sandbox Code Playgroud)

我试图将_item.erb放入/lib/templates/erb/scaffold/(与其他文件一起),但它被忽略了 - 有人有线索吗?

我在rails 3上使用ruby,但如果解决方案对rails 2也有效,请告诉我.我也使用simple_form(因此我已经有_form部分),但我认为解决方案即使没有它也应该有效.

customization ruby-on-rails scaffold ruby-on-rails-3

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

Carrierwave通过雾检查远程文件是否存在

我知道我在这里错过了一些非常简单的东西......

CarrierWave::Storage::Fog::File有方法存在吗?

我该如何使用它?我只是想检查一下以前上传的文件是否存在于远程存储上.

我的图像对象和上传器对象都无法访问此方法.当然,我不必创建一个新CarrierWave::Storage::Fog::File对象来测试该文件是否存在?

如果是这样,我应该放入什么参数?它需要以下内容:uploader,base,path(我使用了上传器,商店目录和图片网址,但是没有用)

ruby-on-rails carrierwave fog

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

单引号或双引号的ruby编码约定

我好好看看,但我找不到关于如何使用字符串引号的约定.我知道两者之间的区别,但在任何地方我都看到带有双引号的好代码,其中单曲就足够了.因此,我无法识别任何模式.我问这个是因为我想开始为开源做贡献,我想从一开始就养成一个好习惯.我宁愿尽可能多地使用单引号,也要加强我对两者之间差异的信心.

ruby convention string syntax

8
推荐指数
2
解决办法
1297
查看次数

在Rails模型中保存之前打开临时文件

上传文件后,是否可以在保存模型之前打开该文件?

我正在使用Paperclip将文件保存在/ public文件夹中.

class Book < ActiveRecord::Base
  before_save :open_it
  has_attached_file :upload

  def open_it
    a_file = open(upload.url) # this doesn't work before save ?
    # ... 
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip

8
推荐指数
2
解决办法
4157
查看次数

关联关系中的角色名称

从UML圣经,关于角色:

角色:角色名称解释对象如何参与关系.每个对象都需要保存对相关对象的引用.引用保存在对象内的属性值中.当只有一个关联时,只有一个属性持有引用.

  1. 这句话是什么意思?
  2. 任何人都可以提供一个例子来解释它吗?

uml roles object associations

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

在 Ruby on Rails 中为 Rspec 和 Rack::Test 设置请求标头

我目前正在尝试使用 Rspec 测试我的应用程序的登录和注销 JSON 端点。我使用的色器件devise_token_auth,以建立JSON端点我认证的宝石。

我可以成功登录用户,但是当注销时,注销功能需要存在多个请求标头才能找到正确的用户并完成。

我已经尝试将标头添加到我当前的 Rack 会话中,但它似乎在创建请求时删除了它们。这是我到目前为止的代码:

辅助方法 ( spec/support/api_helper.rb):

def login_user
        user = create(:user)
        post '/api/v1/auth/sign_in', email: user.email, password: user.password, format: :json
        return { 
                'token-type' => 'Bearer', 
                'uid' => last_response.headers['uid'], 
                'access-token' => last_response.headers['access-token'], 
                'client' => last_response.headers['client'], 
                'expiry' => last_response.headers['expiry'] 
            }
end
Run Code Online (Sandbox Code Playgroud)

我的 Rspec 示例 ( spec/api/v1/authentication_spec.rb):

describe 'DELETE /api/v1/auth/sign_out' do

        it 'should destroy your current session and log you out' do
            login_user
            delete '/api/v1/auth/sign_out', {}, login_user
            expect(last_response.status).to eq 200 …
Run Code Online (Sandbox Code Playgroud)

json rack rspec ruby-on-rails devise

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

WHat对象被传递到Ruby on Rails中的create_table块

在rails中生成模型时,它会创建一个框架迁移文件.

在有

create_table :model_names do |t|
  t.string :name
  t.string :address
  t.timestamps
end
Run Code Online (Sandbox Code Playgroud)

传递什么对象为t.

当我读到本书的这一部分时,我想知道它是什么,但它从未解释过.后来我在form_for帮助器中学到了一个|f|进入它的块,f是一个FormBuilder物体,这让我来到这里问.我的意思是,它显然并不重要,但是当缺少知识时,它会让我感到困惑.

ruby ruby-on-rails

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

在ubuntu上安装sphinx

我安装了MySQL apt-get

Ubuntu将mysql文件分隔到以下位置:

/usr/bin/mysql
/var/lib/mysql
/var/log/mysql
/etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)

遵循sphinx文档的说明:

$ ./configure
Run Code Online (Sandbox Code Playgroud)

--prefix,指定Sphinx的安装位置; 例如--prefix=/usr/local/sphinx(所有示例都使用此前缀)

--with-mysql,如果自动检测失败,则指定查找MySQL包含和库文件的位置;


我收到以下错误:

checking whether to compile with MySQL support... yes
configure: error: invalid MySQL root directory '/usr/bin'; neither bin/mysql_config, nor include/ and lib/ were found there
Run Code Online (Sandbox Code Playgroud)

我应该在哪里找它寻找MySQL?

$ ./configure --with-mysql=WHICH PLACE?
Run Code Online (Sandbox Code Playgroud)

ubuntu sphinx

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

rails命名空间服务对象

我刚刚在控制器和模型之间写了一个服务对象来"标记出勤",所以现在我有一个控制器动作对象,如下所示:

class BookingAttendancesController
  def mark_attending
    attendance_marker = BookingAttendances::AttendanceMarkerService.new params, current_entity
    result = attendance_marker.call
    # flash msg etc
  end
end
Run Code Online (Sandbox Code Playgroud)

和服务对象(当前实现):

# app/services/booking_attendances/attendance_marker_service.rb
module BookingAttendances
  class AttendanceMarkerService
    def initialize(params, entity)
      # ...
    end
    def call
      # ...
    end
    # ...
  end
end
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想在控制器类中命名服务对象,但rails希望该文件定义服务类,而不是嵌套在控制器中的服务类.

该模块的名称可用,但我不确定是否有这样的约定.总的来说,我觉得最困扰我的是我真的想在控制器中定义该类,但是在一个单独的文件中(可能有嵌套).我可以将模块包含在控制器中,但这不是我的观点.在rails中是否存在命名空间服务对象的最佳实践?

namespaces ruby-on-rails service-object

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