我找不到详尽的答案。
如果我设置“生产”会发生什么?我看到视图文件不再“即时”读取,但是还有其他区别吗?
不确定为什么或如何发生这种情况,但突然间,在本地环境中运行良好的应用程序不再工作。
\n\n我的本地开发环境是:\n MacOS Sierra 10.12.5
\n\n应用程序使用:
\n\n每当我运行rails s或rails c时,应用程序都会启动并立即崩溃,并显示以下输出:
\n\n\xe2\x9e\x9c pwf-site git:(master) \xe2\x9c\x97 rails c\nTraceback (most recent call last):\n 67: from bin/rails:4:in `<main>\'\n 66: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require\'\n 65: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency\'\n 64: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require\'\n 63: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require\'\n 62: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi\'\n 61: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register\'\n 60: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi\'\n 59: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require\'\n 58: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/commands.rb:18:in `<main>\'\n 57: from /Users/herbyraynaud/code/personal/pwf-site/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/command.rb:46:in `invoke\'\n …Run Code Online (Sandbox Code Playgroud) 我是 Ruby Sinatra 的新手,我尝试使用以下代码使用 Sinatra 构建一个简单的 Web 应用程序:
require 'rubygems'
require 'sinatra'
get '/firstapp' do
"Welcome to my first Sinatra App !"
end
Run Code Online (Sandbox Code Playgroud)
当我尝试在 Windows 命令提示符下使用命令“ruby file.rb”运行它时,出现错误:
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1755:in `detect_rack_handler': Server handler (thin,puma,reel,HTTP,webrick) not found. (RuntimeError)
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1493:in `run!'
from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/main.rb:45:in `block in <module:Sinatra>'
Run Code Online (Sandbox Code Playgroud)
当我安装sinatra时,我忘记将路径设置为C:(ruby安装目录)\bin。我安装sinatra后已经设置了路径
我不知道发生了什么事。有人可以帮我弄这个吗?
出于某种原因,我的"PUT"方法没有被Sinatra使用这个html捕获.有人能帮我发现错误吗?当我在我的控制器中使用"post"动作时,它的工作方式与预期的一样......
<form method="post" action="/proposals/<%=@proposal.id%>/addItem">
<input type="hidden" name="_method" value="put"/>
<div>
<label for="item_id">Item list</label>
<select title="Item ID" id="item_id" name='item_id'>
<%@items.each do |item|%>
<option value="<%=item.id%>"><%=item.name%></option>
<%end%>
</select>
<input type="submit" value="Add"/></div>
<label for="new_item_name">Create new item</label>
<input type="text" id="new_item_name" name="new_item_name" />
<input type="submit" value="Create"/>
</form>
Run Code Online (Sandbox Code Playgroud) 我刚刚使用eventmachine 启动了薄与雨之间的异步sinatra基准测试.
有人可以解释为什么Thin比使用eventmachine和四个work_processes的Rainbows更快?我也尝试了一个work_processes但结果没有改变.瘦还是更快.
提前感谢Francesco
只是试图让简单的http服务器运行,并且没有关于ruby的线索
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/backports/uri/common_192.rb:53:in `remove_const': constant URI::WFKV_ not defined (NameError)
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/backports/uri/common_192.rb:53:in `<module:URI>'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/backports/uri/common_192.rb:19:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/utils.rb:12:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/utils.rb:12:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/request.rb:1:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/request.rb:1:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/showexceptions.rb:3:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/showexceptions.rb:3:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/showexceptions.rb:1:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/showexceptions.rb:1:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:12:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:12:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra.rb:4:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra.rb:4:in `<top (required)>'
from http.rb:1:in `require'
from http.rb:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)
这是我在centos上的ruby版本
ruby 1.9.1p376 (2009-12-07 revision 26041) [x86_64-linux]
任何帮助将非常感激
我已经使用Rack::Flash了一段时间在我的Sinatra应用程序中显示响应的闪光通知.自从我升级到Sinatra 1.3.2后,应用程序崩溃,每当我向服务器发出请求时都会记录以下内容:
!! Unexpected error while processing request: undefined method `<<' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
简化的代码如下所示:
require 'sinatra'
require 'rack-flash'
enable :sessions
use Rack::Flash
get "/" do
"Hello World"
end
Run Code Online (Sandbox Code Playgroud)
知道为什么会发生这种情况吗?
我在Ruby/Sinatra中有一个表单,其中显示了一个日期字段:
%input{:type => "date", :name => "due_date", :value => @m.due_date}
Run Code Online (Sandbox Code Playgroud)
在屏幕上,表单字段显示为day-month-year(例如23-11-2012).
我希望将字段内容显示为year-month-day(例如2012-11-23).
建议?
我正在尝试将Twitter Bootstrap CSS添加到ERB文件并与Sinatra一起运行,但CSS不会显示.
我的代码:
<link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css">
Run Code Online (Sandbox Code Playgroud)
我的文件夹结构在代码中是相同的.
我已经试过href="lib/...和href="../lib/...不工作
有解决方案吗
在西纳特拉,使用erubis,默认设置escape_html是true。
但是有时我想取消转义,因为,我不想添加太多的escape_html。不要重复自己。:)
helpers:
def raw(string)
CGI::unescape_html(string)
end
Run Code Online (Sandbox Code Playgroud)
views:
<div class="body">
<%= raw "<h1>Thanks for help...</h1>" %>
</div>
Run Code Online (Sandbox Code Playgroud)
不起作用。