小编Aja*_*rot的帖子

FastCGI不使用Rails 4共享主机(Phusion Passenger)

我正在使用Rails 4.1.6和ruby 2.1.8p440.

目前,我想加快性能并添加配置FastCGI.

问题:FastCGI不起作用并且减慢了我的RoR APP.

到目前为止,我有这个目录结构:

  • 博客(Rails 4应用程序)
  • 的public_html
    • 的.htaccess
    • dispatch.fcgi

我的.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)

.htaccess fastcgi ruby-on-rails passenger ruby-on-rails-4

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

ActiveAdmin和其他自定义CSS文件

我在哪里可以自定义css文件来自定义ActiveAdmin CSS?

我在active_admin.rb中看到有以下行:

config.register_stylesheet 'active_admin.css'
Run Code Online (Sandbox Code Playgroud)

但我无法理解文件的去向.我想要做的就是为AA的默认样式添加一些额外的自定义样式

css ruby-on-rails activeadmin

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

RSolr :: Error :: InvalidRubyResponse - 200 OK

即使在启动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)

有谁知道为什么我得到这个错误?请帮我.

谢谢

sunspot foreman ruby-on-rails-3.2

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

在rails应用程序清单中使用@import时,您如何知道哪一行包含SCSS错误?

我正在使用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文件.人们如何处理这个问题?

css sass ruby-on-rails-4

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

为什么ActionDispatch :: Routing :: RouteSet需要这么长时间

我在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

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

为什么Rails 5将"索引"改为"外键"?

如果你在Rails 4中有这个:

t.references :event, index: true
Run Code Online (Sandbox Code Playgroud)

现在你可以使用foreign_key而不是index在Rails 5.我不太明白为什么他们决定这样做,因为功能保持不变,你添加的是INDEX,而不是该列的FOREIGN KEY.

ruby-on-rails foreign-keys primary-key ruby-on-rails-5

8
推荐指数
3
解决办法
7859
查看次数

kaminari paginate通过ajax,remote = true不影响rails 3中的视图

您好我正在使用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)

javascript ajax pagination ruby-on-rails-3 kaminari

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

如何允许具有强参数的Rack :: Test :: UploadedFile?

我在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!它工作正常.

ruby-on-rails-3.2 strong-parameters

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

我在Rails中使用Figaro gem时遇到错误

错误消息引用了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)

ruby-on-rails ruby-on-rails-3

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

检查电子邮件域名是否有效

我的表单中有一个 email_id 的输入字段。
当用户输入电子邮件 ID 并提交表单时,我需要验证电子邮件的域。

(注意:我不需要验证电子邮件地址。我只需要验证域名)

在 Ruby on Rails 中检查电子邮件域是否有效的最佳方法是什么?

validation ruby-on-rails ruby-on-rails-4

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