我认为我StringIO有点像Java的StringBuffer类,但我并不完全理解它.你如何在Ruby中定义它及其目的/可能的用途?只是希望能够消除我的困惑.
我添加了Devise gem,然后按照说明运行rails generate devise:install,结果如下:
/usr/local/rvm/gems/ruby-1.9.3-p194/gems/devise-3.2.4/lib/devise/rails/routes.rb:487:in `raise_no_secret_key': Devise.secret_key was not set. Please add the following to your Devise initializer: (RuntimeError)
config.secret_key = 'abc123'
Please ensure you restarted your application after installing Devise or setting the key.
Run Code Online (Sandbox Code Playgroud)
如何"重启"我的申请?我如何以及在何处设置密钥?
我正在尝试做的是使用Prawn生成PDF,同时具有一些特定于语言的字符.
结果我收到以下错误:
raise Prawn::Errors::IncompatibleStringEncoding,
"Your document includes text that's not compatible with the Windows-1252 character set.\n" \
"If you need full UTF-8 support, use TTF fonts instead of PDF's built-in fonts\n."
Run Code Online (Sandbox Code Playgroud)
所以我尝试通过这样做来改变字体:
# app/models/prawn/change_font_decorator.rb
Prawn::Document.generate("output.pdf") do
font_families.update("Arial" => {
:normal => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf"),
:bold_italic => Rails.root.join("app/assets/fonts/OpenSans-Regular.ttf")
})
font "Arial"
end
Run Code Online (Sandbox Code Playgroud)
然而,我在尝试生成PDF文件时遇到了同样的错误.
关于如何解决这个问题的任何想法?
我想显示一个带有错误消息的模态窗口,当用户在表单中输入了无效内容时,如果一切正常,则显示另一个操作.但是,当我尝试显示模态窗口时
render :js => "jQuery.facebox(#{...})"
Run Code Online (Sandbox Code Playgroud)
仅显示实际调用的JavaScript:
try {
jQuery.facebox(...)
} catch (e) { alert('RJS error:\n\n' + e.toString());
alert('jQuery.facebox(\"<div class=\'error\'>Error</div>\")');
throw e;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试渲染Devise gem的登录视图,但是我收到一个错误,下面是我目前的代码:
这是我的views/users/shared/_links.html.erb:
<%- if controller_name != 'sessions' %>
<%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>
<%- if …Run Code Online (Sandbox Code Playgroud) 这是一个全新的项目.这是我运行的确切命令:
rails new MyProjectbundle installrails generate controller Image我添加了这一条路线:
root :to => "image#process"我已将此功能添加到ImageController(image_controller.rb)
def process
render :nothing => true
end
Run Code Online (Sandbox Code Playgroud)
最后我删除了默认值index.html.当我运行项目时,它有一个错误,说进程需要0参数,而不是1.所以我修改方法告诉我试图发送到进程的参数.
def process(arg)
p arg
render :nothing => true
end
Run Code Online (Sandbox Code Playgroud)
字符串"process"被打印到屏幕上.我以前做过几个Rails项目,从未遇到过这个.我错过了某个地方吗?这是Rails 3.0.10中的新功能吗?或者可能是由Ruby 1.9.2引起的?我想我通常使用1.8.7.
我想用自定义页面替换ActiveAdmin中的默认仪表板页面.
这主要是因为我想要一个基于资源的页面,即用ActiveAdmin.register和不用生成的页面ActiveAdmin.register_page.
我刚刚删除了该dashboard.rb文件,希望这MyCustomAdmin是一个常规(和工作)ActiveAdmin资源,只需取代仪表板.
但它没有,而是我得到这个错误:
uninitialized constant Admin::DashboardController
Run Code Online (Sandbox Code Playgroud)
所以我更改了ActiveAdmin初始化程序并设置:
# config/initializers/active_admin.rb
config.root_to = 'my_custom_admin#index'
Run Code Online (Sandbox Code Playgroud)
我也MyCustomAdmin喜欢这样:
# app/admin/my_custom_admin.rb
ActiveAdmin.register MyCustomAdmin do
menu :priority => 1, :label => 'Report'
index do
column "column 1 title", :column1
end
end
Run Code Online (Sandbox Code Playgroud)
我的模特中还有:
# app/models/my_custom_admin.rb
class MyCustomAdmin < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
所以问题是当我尝试访问时localhost:3000/admin我得到错误:
uninitialized constant Admin::MyCustomAdminController
Run Code Online (Sandbox Code Playgroud)
但是,如果我去localhost:3000/admin/my_custom_admin它的工作就好了.
为什么localhost:3000/admin不工作?
我在视图中有这个代码
prawn_document(:page_size=> "A4", :top_margin => 80, :bottom_margin => 40,
:background => "public/uploads/1.png") do |pdf|
creation_date = Time.now.strftime('%d-%m-%Y')
posts = @posts.each do |post|
pdf.pad(10) do
pdf.text post.title
pdf.text post.text
end
end
pdf.page_count.times do |i|
pdf.go_to_page(i + 1)
pdf.draw_text "Creation Date : " + creation_date, :at => [200, 780]
pdf.draw_text "Page : #{i + 1} / #{pdf.page_count}", :at => [450, -3]
end
end
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:

还有这个

正如您在第一张图像中看到的那样,图像不居中.
在第二张图像上,您可以看到图像不适合整页.
我还尝试将图像添加到每个页面,这是我添加页码的方式,但这里图像与文本重叠.但在这里,我可以按照我想要的方式定位图像,但只是它与文本重叠.
如果我放入标题,我无法定位和调整图像大小.
所以我需要帮助使图像适合页面.图像为700px x 700px.
我也试过使用PDFkit,但是无法获得页码,我觉得我几乎都在使用Prawn,但只是这个图像.即使是不同的解决方案也会受到青睐.
我的JavaScript正在执行两次.当我运行Chrome调试器时,我注意到单个JavaScript文件将在第一次执行代码,之后,application.js文件将再次执行代码.
我相信这种情况正在发生,因为我最近关闭了预编译,因为我遇到了Heroku的问题.在此之后,我跑了rake assets:precompile.
javascript ruby-on-rails ruby-on-rails-3 asset-pipeline turbolinks
我有一个带有 SQL 查询的搜索模块,如下所示:
SELECT FROM trilers WHERE title '%something%'
Run Code Online (Sandbox Code Playgroud)
当我搜索诸如“蜘蛛侠”之类的关键字时,它返回找不到,但是当我搜索“蜘蛛侠”时,它返回我的内容(MySQL 中的原始行是“蜘蛛侠”)。
如何忽略所有符号,如-, #, !,:并同时返回带有“蜘蛛侠”和“蜘蛛侠”关键字的内容?
ruby ×3
devise ×2
pdf ×2
prawn ×2
activeadmin ×1
io ×1
javascript ×1
mysql ×1
rjs ×1
secret-key ×1
sql ×1
turbolinks ×1