小编Oxf*_*ist的帖子

什么是ruby的StringIO类呢?

我认为我StringIO有点像Java的StringBuffer类,但我并不完全理解它.你如何在Ruby中定义它及其目的/可能的用途?只是希望能够消除我的困惑.

ruby io

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

如何为Rails中的Devise设置密钥?

我添加了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)

如何"重启"我的申请?我如何以及在何处设置密钥?

configuration ruby-on-rails devise secret-key

8
推荐指数
2
解决办法
7978
查看次数

如何更改Prawn中的字体

我正在尝试做的是使用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文件时遇到了同样的错误.

关于如何解决这个问题的任何想法?

pdf ruby-on-rails prawn

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

无法从Rails控制器呈现JavaScript

我想显示一个带有错误消息的模态窗口,当用户在表单中输入了无效内容时,如果一切正常,则显示另一个操作.但是,当我尝试显示模态窗口时

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)

ruby-on-rails rjs

6
推荐指数
2
解决办法
6868
查看次数

Rails错误resource_name - 设计帮助路由和呈现

我正在尝试渲染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)

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

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

为什么Rails控制器操作方法需要参数

这是一个全新的项目.这是我运行的确切命令:

  1. rails new MyProject
  2. bundle install
  3. rails generate controller Image

我添加了这一条路线:

  1. 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中的新功能吗?或者可能是由R​​uby 1.9.2引起的?我想我通常使用1.8.7.

ruby-on-rails-3

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

从ActiveAdmin中删除仪表板页面

我想用自定义页面替换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不工作?

ruby-on-rails activeadmin

6
推荐指数
2
解决办法
6056
查看次数

在所有页面上使用虾的背景图像

我在视图中有这个代码

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,但只是这个图像.即使是不同的解决方案也会受到青睐.

ruby pdf ruby-on-rails prawn

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

Rails资产管道:JavaScript被执行两次

我的JavaScript正在执行两次.当我运行Chrome调试器时,我注意到单个JavaScript文件将在第一次执行代码,之后,application.js文件将再次执行代码.

我相信这种情况正在发生,因为我最近关闭了预编译,因为我遇到了Heroku的问题.在此之后,我跑了rake assets:precompile.

javascript ruby-on-rails ruby-on-rails-3 asset-pipeline turbolinks

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

如何忽略 SQL LIKE 中的符号

我有一个带有 SQL 查询的搜索模块,如下所示:

SELECT FROM trilers WHERE title '%something%'
Run Code Online (Sandbox Code Playgroud)

当我搜索诸如“蜘蛛侠”之类的关键字时,它返回找不到,但是当我搜索“蜘蛛侠”时,它返回我的内容(MySQL 中的原始行是“蜘蛛侠”)。

如何忽略所有符号,如-, #, !:并同时返回带有“蜘蛛侠”和“蜘蛛侠”关键字的内容?

mysql sql

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