我正在使用Rails 4.1.6和ruby 2.1.8p440.
目前,我想加快性能并添加配置FastCGI.
问题:FastCGI不起作用并且减慢了我的RoR APP.
到目前为止,我有这个目录结构:
我的.htaccess文件:
PassengerAppRoot "/home/individualki/blogs"
PassengerBaseURI "/"
PassengerRuby "/home/individualki/rubyvenv/ror/2.1/bin/ruby"
RailsEnv development
SetEnv RAILS_RELATIVE_URL_ROOT /dispatch
RewriteEngine On
RewriteRule ^(stylesheets/.*)$ - [L]
RewriteRule ^(javascripts/.*)$ - [L]
RewriteRule ^(images/.*)$ - [L]
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
Run Code Online (Sandbox Code Playgroud)
我的dispatch.fcgi文件:
#!/home/individualki/rubyvenv/ror/2.1/bin/ruby
ENV['RAILS_ENV'] ||= 'development'
ENV['HOME'] ||= `echo ~`.strip
ENV['GEM_HOME'] = File.expand_path('~/.gems')
ENV['GEM_PATH'] = File.expand_path('~/.gems') + ":" + '/usr/lib/ruby/gems/1.8'
require 'rubygems'
Gem.clear_paths
require 'fcgi'
require '../home/individualki/blogs/config/boot.rb'
require …Run Code Online (Sandbox Code Playgroud) 我在哪里可以自定义css文件来自定义ActiveAdmin CSS?
我在active_admin.rb中看到有以下行:
config.register_stylesheet 'active_admin.css'
Run Code Online (Sandbox Code Playgroud)
但我无法理解文件的去向.我想要做的就是为AA的默认样式添加一些额外的自定义样式
即使在启动forreman并启动太阳黑子后,我也会听到以下错误:solr:
RSolr::Error::InvalidRubyResponse - 200 OK
Error: <result status="1">java.lang.NullPointerException
at org.apache.solr.handler.XmlUpdateRequestHandler.doLegacyUpdate(XmlUpdateRequestHandler.java:129)
at org.apache.solr.servlet.SolrUpdateServlet.doPost(SolrUpdateServlet.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:297)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
Request Data: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><add><doc><field name=\"id\">User 1</field><field name=\"type\">User</field><field name=\"type\">ActiveRecord::Base</field><field name=\"class_name\">User</field><field name=\"name_s\">K12 Administrator</field><field name=\"username_s\">admin</field><field name=\"id_i\">1</field><field name=\"role_s\">admin</field><field boost=\"1.5\" name=\"name_text\">K12 Administrator</field><field name=\"username_text_text\">admin</field></doc></add>"
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我得到这个错误?请帮我.
谢谢
我正在使用Rails 4,sass-rails 4.0.2和我的application.css.scss文件看起来像:
@import 'foundation_and_overrides';
@import "font-awesome";
@import "vendors/*";
@import "layout";
@import "modules/*";
Run Code Online (Sandbox Code Playgroud)
但是,我得到一个未定义的mixin错误如下:
Undefined mixin 'box-shadow'.
(in C:/Rails/austin_residence/app/assets/stylesheets/application.css.scss:4)
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何调试这个,因为错误是从应用程序清单文件报告css行而不是包含错误的实际@import文件.人们如何处理这个问题?
我在Rails 4.2.1之上使用Grape为我们的应用程序提供API.
但是当我今天检查Newrelic的性能时,我发现RackApp Proc#call并且Grape API::Root#call占用了大量的时间.(见截图)

然后我尝试记录中间件消耗的时间rack_timer,发现ActionDispatch::Routing::RouteSet大部分时间占用了:
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 67.12579727172852 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 101.51457786560059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 84.18059349060059 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 1236.2565994262695 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 8.124351501464844 ms
Rack Timer (Application Action) -- ActionDispatch::Routing::RouteSet: 55.65309524536133 ms
Run Code Online (Sandbox Code Playgroud)
甚至有些情况需要500毫秒到1000毫秒ActionDispatch::Routing::RouteSet.我怎么能找到这个问题,怎么知道我在Rails路线上做错了什么?
非常感谢您的帮助.
performance ruby-on-rails ruby-grape newrelic ruby-on-rails-4
如果你在Rails 4中有这个:
t.references :event, index: true
Run Code Online (Sandbox Code Playgroud)
现在你可以使用foreign_key而不是index在Rails 5.我不太明白为什么他们决定这样做,因为功能保持不变,你添加的是INDEX,而不是该列的FOREIGN KEY.
您好我正在使用kaminari gem进行分页,我想通过ajax进行paginatation.
index.html.haml
#abc
= render :partial => 'anything/anything_lists', collection: @anything_upcoming, as: :anything_schedule
#paginator
= paginate @anything_upcoming, :remote => true, :param_name => "anything_upcoming_page"
Run Code Online (Sandbox Code Playgroud)
index.js.haml
$('#abc').html('#{escape_javascript render(partial: "anything/anything_lists")}');
$('#paginator').html('#{escape_javascript(paginate(@anything_upcoming, :remote => true, :param_name => "anything_upcoming_page").to_s)}');
Run Code Online (Sandbox Code Playgroud)
控制器文件:
@anything_upcoming = AnythingSchedule.anything_upcoming.page(params[:anything_upcoming_page]).per(Settings.pagination.per_page)
respond_to do |format|
format.js
format.html
end
Run Code Online (Sandbox Code Playgroud)
view source显示data-remote = true但是log将Website :: EventsController #index显示为HTML.所以我在这里失踪了.
编辑:我正在js文件上做一些实验,我将index.js.haml转换为index.js.erb,只有一次我得到ajax请求,并且还显示在日志上调用JS.我再次重做然后像往常一样没有得到ajax请求.
最终编辑 application.js
//= require jquery
//= require jquery_ujs
//= require ckeditor-jquery
//= require bootstrap.min
//= require bootstrap-datepicker.min
//= require bootstrap-timepicker.min
//= require chosen.jquery.min
//= require jquery.popupoverlay
//= …Run Code Online (Sandbox Code Playgroud) 我在Rails 3.2中使用了strong_parameters gem.为了测试图像上传过程,我有一个带参数的传入请求:
{"photo"=>{"image"=>#<Rack::Test::UploadedFile:0x000000069ce1f8 @content_type="image/png", @original_filename="test.png", @tempfile=#<Tempfile:/tmp/test.png20130420-9529-1xuka4v-1>>, "status"=>"approved", "in_use"=>false}, "controller"=>"member/photos", "action"=>"create"}
Run Code Online (Sandbox Code Playgroud)
如何允许图像属性进行分配?我试过了;
params.require(:photo).permit(:image)
Run Code Online (Sandbox Code Playgroud)
但它不起作用并说Validation failed: Image can't be blank.
当我允许所有参数时params.require(:photo).permit!它工作正常.
错误消息引用了gem中的一行,但我怀疑我的麻烦存在于我的.yml文件中,就在这里(有假ids)
S3_KEY:ANGELINAANGELINA
S3_SECRET:becaUSEILIKEherthatiswhy
S3_BUCKET:nameofmybucket
Run Code Online (Sandbox Code Playgroud)
/home/tom/.rvm/gems/ruby-2.1.0/gems/figaro-0.7.0/lib/figaro.rb:39:in flatten': undefined method拒绝'for#(NoMethodError)
我的表单中有一个 email_id 的输入字段。
当用户输入电子邮件 ID 并提交表单时,我需要验证电子邮件的域。
(注意:我不需要验证电子邮件地址。我只需要验证域名)
在 Ruby on Rails 中检查电子邮件域是否有效的最佳方法是什么?
css ×2
.htaccess ×1
activeadmin ×1
ajax ×1
fastcgi ×1
foreign-keys ×1
foreman ×1
javascript ×1
kaminari ×1
newrelic ×1
pagination ×1
passenger ×1
performance ×1
primary-key ×1
ruby-grape ×1
sass ×1
sunspot ×1
validation ×1