我刚刚开始使用elasticsearch.我们的要求是我们需要索引数千个PDF文件,而我很难获得其中一个成功编制索引.
安装了Attachment Type插件并获得了响应:Installed mapper-attachments.
按照附件类型操作教程,但该过程挂起,我不知道如何解释错误消息.还尝试了挂在同一个地方的要点.
$ curl -X POST "localhost:9200/test/attachment/" -d json.file
{"error":"ElasticSearchParseException[Failed to derive xcontent from (offset=0, length=9): [106, 115, 111, 110, 46, 102, 105, 108, 101]]","status":400}
Run Code Online (Sandbox Code Playgroud)
更多细节:
该json.file包含一个嵌入式的Base64 PDF文件(按说明).该文件的第一行显示正确(无论如何):{"file":"JVBERi0xLjQNJeLjz9MNCjE1OCAwIG9iaiA8...
我不确定是否可能json.file是无效的,或者是否可能没有设置弹性搜索来正确解析PDF?!?
编码 - 以下是我们如何将PDF编码为json.file(根据教程):
coded=`cat fn6742.pdf | perl -MMIME::Base64 -ne 'print encode_base64($_)'`
json="{\"file\":\"${coded}\"}"
echo "$json" > json.file
Run Code Online (Sandbox Code Playgroud)
还尝试过:
coded=`openssl base64 -in fn6742.pdf
Run Code Online (Sandbox Code Playgroud)
日志:
[2012-06-07 12:32:16,742][DEBUG][action.index ] [Bailey, Paul] [test][0], node[AHLHFKBWSsuPnTIRVhNcuw], [P], …Run Code Online (Sandbox Code Playgroud) 在Rails服务器上试验MongoID,并对如何/在何处设置环境变量感到困惑.
config/mongoid.yml 默认模板提供:
defaults: &defaults
host: localhost
...
# set these environment variables on your prod server
production:
host: <%= ENV['MONGOID_HOST'] %>
port: <%= ENV['MONGOID_PORT'] %>
username: <%= ENV['MONGOID_USERNAME'] %>
password: <%= ENV['MONGOID_PASSWORD'] %>
database: <%= ENV['MONGOID_DATABASE'] %>
Run Code Online (Sandbox Code Playgroud)
我的问题是这些是在Rails中设置的吗?或者他们是在系统级别?如果是这样设置的地方/如何设置,以便不需要登录任何用户帐户才能使它们有效?
我是个白痴......搞砸了Rails的迁移:
思考迁移将像模型生成器一样工作(使用references:modelname)我做了以下事情:
$ rails g migration add_event_to_photos references:event
Run Code Online (Sandbox Code Playgroud)
这创造了迁移
class AddEventToPhotos < ActiveRecord::Migration
def change
add_column :photos, :references, :event
end
end
Run Code Online (Sandbox Code Playgroud)
现在我的开发数据库(SQLite3)在表中有一个references类型event的photos列.
我的schema.rb中间有一行说:
# Could not dump table "photos" because of following StandardError
# Unknown type 'event' for column 'references'
Run Code Online (Sandbox Code Playgroud)
rake db:rollback 无能为力:
$ rake db:rollback
== AddEventToPhotos: reverting ===============================================
-- remove_column("photos", :references)
rake aborted!
An error has occurred, this and all later migrations canceled:
undefined method `to_sym' for nil:NilClass …Run Code Online (Sandbox Code Playgroud) 利用ActionController的新respond_with方法......当action(保存)成功时以及何时不成功时,它如何确定要呈现的内容?
我问,因为我试图获得一个脚手架生成的规范(包括在下面),如果只是为了让我能理解它.该应用程序工作正常,但奇怪/carriers的是,当验证失败时,它似乎正在渲染(至少是浏览器的URL所说的).然而,规范期待"new"(我也是如此),而是接受<"">.如果我更改规格以期望""它仍然失败.
当它呈现/carriers该页面时,会显示错误验证失败的字段旁边的error_messages.
任何熟悉的人都能respond_with看到这里发生了什么吗?
#carrier.rb
validates :name, :presence => true
#carriers_controller.rb
class CarriersController < ApplicationController
respond_to :html, :json
...
def new
respond_with(@carrier = Carrier.new)
end
def create
@carrier = Carrier.new(params[:carrier])
flash[:success] = 'Carrier was successfully created.' if @carrier.save
respond_with(@carrier)
end
Run Code Online (Sandbox Code Playgroud)
规格失败:
#carriers_controller_spec.rb
require 'spec_helper'
describe CarriersController do
def mock_carrier(stubs={})
(@mock_carrier ||= mock_model(Carrier).as_null_object).tap do |carrier|
carrier.stub(stubs) unless stubs.empty?
end
end
describe "POST create" do
describe "with invalid …Run Code Online (Sandbox Code Playgroud) 关于在Rails 3.1的新资产管道中放置像Galleria这样的jQuery框架,我有点困惑?
从技术上讲,我知道它应该进入/vendors/assets/javascripts 但是,我的理解是,Galleria带有jQuery和主题的文件夹想要/galleria在实时站点的root()中才能正常工作.
此外,当我们在它的时候,在哪里放置以下脚本,以便它只出现在带有图库的页面上?
<script>
$('#gallery').galleria({
width:500,
height:500
});
</script>
Run Code Online (Sandbox Code Playgroud)
编辑:惊讶没有回应!?!也许Galleria不那么受欢迎?这些是我正在尝试加载的文件.虽然我可以很容易地移动它们,但它们是这样捆绑的:
vendor/
assets/
javascripts/
galleria-1.2.5.js
galleria-1.2.5.min.js
galleria/
themes/
classic/
classic-loader.gif
classic-map.png
galleria.classic.css
galleria.classic.js
galleria.classic.min.js
Run Code Online (Sandbox Code Playgroud)
我以为Sprockets require_tree .会加载所有内容app/assets,lib/assets并且vendor/assets?!?
ruby-on-rails galleria ruby-on-rails-3.1 sprockets asset-pipeline
我喜欢git rebase -i HEAD~5压下我的承诺.有时我认为我需要返回5次提交然后意识到我需要7.然而git已经.git/rebase-merge/git-rebase-todo在vim中提出了rebase编辑器.
如果我退出缓冲区(vim),那么git说:
Successfully rebased and updated refs/heads/my-branchname
Run Code Online (Sandbox Code Playgroud)
有没有办法在编辑器中停止转换?我想我可以git rebase --abort从另一个shell,但不知道这会对git-rebase-todo我在另一个缓冲区中编辑的文件做什么.
我在Rails中的动词遇到了麻烦 ......
查看资源(狗)的页面has_many(跳蚤).嵌入在狗中的show.html.haml是一个render @dog.fleas自动(?)查找并使用"fleas/_flea.html.haml"中的模板来列出与所述狗相关的每个跳蚤的调用.
这显示正确.噢!现在,在每个跳蚤的旁边,我放了一个"Kill Flea"链接进入网址://localhost:3000/dogs/1/fleas/7.由哪个生成:
= link_to("Kill Flea", [ flea.dog, flea ], :method => :delete, :confirm => "Sure? A bunny will die")
Run Code Online (Sandbox Code Playgroud)
但是每次点击该链接都没有确认...并且它会呈现跳蚤的show.html页面.这是因为如果它使用GET上/dogs/1/fleas/7,而不是删除?!?
ps-不担心蜘蛛和机器人在我的数据库中删除东西......我只是想学习Rails ......并了解发生了什么
我试图通过合并来干扰控制器respond_with.当我这样做时,遵循Railscast中的一些指示,我得到的东西大部分都在工作.问题在于删除资源后的重定向...应该重定向到people_url...而是尝试加载特定资源.
我找到的示例代码看起来像这样......但是它尝试加载刚删除的资源失败了:
# app/controllers/people_controller.rb
class PeopleController < ApplicationController
respond_to :html, :xml
def destroy
@person = Person.find(params[:id])
flash[:notice] = 'Successfully deleted person.' if @person.destroy
respond_with(@person) # <== spec fails here
end
end
Run Code Online (Sandbox Code Playgroud)
改变最后一行respond_with(@people)也不起作用(虽然我曾希望它会...)
经过深入挖掘并尽力了解事情,我确实让事情发生了(至少看起来如此.规格传递.app功能)用这个:
respond_with(@person, :location => people_url) # <== now it works
Run Code Online (Sandbox Code Playgroud)
那么,这是处理这个问题的正确方法吗?似乎有了所有'魔法'背后的response_with它会知道删除后它不能重定向到自己?我也认为这个(7种基本的RESTful CRUD方法之一)将是非常基本和基本的,所以很多例子会比比皆是......但我找不到很多,除了那些暗示代码不起作用的代码我.
希望有人可以帮助我理解这里发生的铁轨'魔力'所以当我在路上爆炸时,我不会感到惊讶.
最新的Capybara-webkit抛出弃用警告:
WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt. You're using version 4.8.7.
Run Code Online (Sandbox Code Playgroud)
所以我:
gem uninstall capybara-webkit
brew uninstall qt
brew install qt5
gem install capybara-webkit
Run Code Online (Sandbox Code Playgroud)
这种贬值现在已经消失,但一切都崩溃了:
$ rspec -p -- spec/features
Randomized with seed 52457
...2015-07-30 16:56:21.731 webkit_server[8416:6381638] Error loading /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin: dlopen(/Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin, 265): no suitable image found. Did find:
/Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin: mach-o, but wrong architecture
plugin,NP_Initialize start
plugin,NP_Initialize end
plugin,NP_GetEntryPoints start
Private_Initialize
plugin,NP_GetEntryPoints end …Run Code Online (Sandbox Code Playgroud) 当您检查Leaks仪器中收集泄漏的内存内容时,这有什么作用?我有一个麻烦的泄漏,并认为这个"记忆内容"可能有助于追踪它...但我找不到它!?!
osx-server ×2
respond-with ×2
apache-tika ×1
base64 ×1
cocoa ×1
galleria ×1
git ×1
instruments ×1
memory-leaks ×1
pdf ×1
qt ×1
qt5 ×1
quicktime ×1
rebase ×1
rollback ×1
routing ×1
rspec ×1
sprockets ×1
unix ×1
vim ×1
xcode ×1