当我这样做
ip = request.env["REMOTE_ADDR"]
Run Code Online (Sandbox Code Playgroud)
我得到了客户端的IP地址.但是如果我想验证变量中的值是否真的是IP呢?我怎么做?
请帮忙.提前致谢.抱歉,如果重复这个问题,我没有努力找到它......
编辑
那么IPv6 IP呢?
我有2个环境,制作和舞台演出,我正在使用Capistrano和capistrano-ext gem.
当我使用Capistrano 部署到登台并重新启动乘客时,我希望部署的应用程序在暂存中运行,但它在默认生产中运行
我尝试过设置:
set :rails_env, "staging"
Run Code Online (Sandbox Code Playgroud)
在我的部署配方中,但这没有任何效果.
我知道这可以通过在Apache中设置虚拟主机来完成,但我使用的是共享主机,因此无法访问.我的主人提供以下建议:
将以下内容添加到environment.rb:ENV ['RAILS_ENV'] ='staging'
但这并没有帮助我使用Capistrano自动完成这个过程.
respond_to
和之间有什么区别respond_with
?他们在做什么?任何人都可以用输出截图发布示例吗?
谢谢.
我正在尝试自定义我的脚手架生成器,我想在同一目录中为视图设置一个新的部分,特别_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部分),但我认为解决方案即使没有它也应该有效.
我知道我在这里错过了一些非常简单的东西......
CarrierWave::Storage::Fog::File
有方法存在吗?
我该如何使用它?我只是想检查一下以前上传的文件是否存在于远程存储上.
我的图像对象和上传器对象都无法访问此方法.当然,我不必创建一个新CarrierWave::Storage::Fog::File
对象来测试该文件是否存在?
如果是这样,我应该放入什么参数?它需要以下内容:uploader,base,path(我使用了上传器,商店目录和图片网址,但是没有用)
我好好看看,但我找不到关于如何使用字符串引号的约定.我知道两者之间的区别,但在任何地方我都看到带有双引号的好代码,其中单曲就足够了.因此,我无法识别任何模式.我问这个是因为我想开始为开源做贡献,我想从一开始就养成一个好习惯.我宁愿尽可能多地使用单引号,也要加强我对两者之间差异的信心.
上传文件后,是否可以在保存模型之前打开该文件?
我正在使用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) 从UML圣经,关于角色:
角色:角色名称解释对象如何参与关系.每个对象都需要保存对相关对象的引用.引用保存在对象内的属性值中.当只有一个关联时,只有一个属性持有引用.
我目前正在尝试使用 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) 在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
物体,这让我来到这里问.我的意思是,它显然并不重要,但是当缺少知识时,它会让我感到困惑.
我安装了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) 我刚刚在控制器和模型之间写了一个服务对象来"标记出勤",所以现在我有一个控制器动作对象,如下所示:
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中是否存在命名空间服务对象的最佳实践?
ruby ×3
string ×2
associations ×1
capistrano ×1
carrierwave ×1
convention ×1
deployment ×1
devise ×1
fog ×1
ip ×1
ipv6 ×1
json ×1
namespaces ×1
object ×1
paperclip ×1
passenger ×1
rack ×1
roles ×1
rspec ×1
scaffold ×1
sphinx ×1
syntax ×1
ubuntu ×1
uml ×1