小编ama*_*euk的帖子

Rails 3身份验证:Authlogic vs Devise

我一直在Rails 2.3中使用Authlogic,但现在我正在使用Rails 3,我想我可能会试用一种新的身份验证解决方案.

Devise与Authlogic相比如何?他们有什么不同?

authlogic devise ruby-on-rails-3

42
推荐指数
5
解决办法
2万
查看次数

Mysql ::错误:指定的密钥太长; 最大密钥长度为1000字节

script/generate acts_as_taggable_on_migration
rake db:migrate
Run Code Online (Sandbox Code Playgroud)

原因

Mysql::Error: Specified key was too long; max key length is 1000 bytes: CREATE  INDEX `index_taggings_on_taggable_id_and_taggable_type_and_context` ON `taggings` (`taggable_id`, `taggable_type`, `context`)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

这是我的数据库编码:

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | latin1 | 
| character_set_connection | latin1 | 
| character_set_database   | utf8   | 
| character_set_filesystem | binary | 
| character_set_results    | latin1 | 
| character_set_server     | latin1 | 
| character_set_system     | utf8   | 
+--------------------------+--------+
7 rows in set (0.00 …
Run Code Online (Sandbox Code Playgroud)

mysql sql indexing ruby-on-rails mysql-error-1071

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

保存之前获取Rails模型的ID ...?

如何在保存之前获取rails模型的id?

例如,如果我创建一个新的模型实例,如何在保存之前获取其ID?

我知道id是在onsave上创建的并且根据数据库但是有一个解决方法吗?

ruby-on-rails

16
推荐指数
2
解决办法
2万
查看次数

如何获得最高数量的关联模型(Rails)?

用户has_many解决方案

如何为拥有最多解决方案的用户订购用户?

我正在努力寻找十大用户,但我不确定如何做到最干净或最有效的方法呢?

有没有人有一个计算成本太高的例子?

activerecord ruby-on-rails has-many

9
推荐指数
3
解决办法
4242
查看次数

如何禁用Rails 3.1 Asset Pipeline?

如何暂时禁用Rails 3.1提供的资产管道功能?(我正在进行升级)

ruby-on-rails ruby-on-rails-3.1 asset-pipeline

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

如何在Rails 3中完成这项工作?

我正在更新一个Rails项目,发现一段代码在Rails 3和Ruby 1.9.2中没有用(它在Rails 2.3和Ruby 1.8.7中都有用),反正看起来很乱!

  def speech_box(title, options = {}, &block)
    block_to_partial 'layouts/speech_box', options.merge(:title => title), &block
  end

  def block_to_partial(partial_name, options = {}, &block)
    options.merge!(:body => capture(&block))
    concat(render(:partial => partial_name, :locals => options), block.binding)
  end
Run Code Online (Sandbox Code Playgroud)

我打电话时收到以下错误:

  <% speech_box("hello") do %>
    <p>lorem ipsum</p>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

错误的参数数量(2为1)

为什么这在Rails 3中不起作用?

如下所述,这里是跟踪:

actionpack (3.1.0) lib/action_view/helpers/text_helper.rb:51:in `concat'
app/helpers/application_helper.rb:277:in `block_to_partial'
app/helpers/application_helper.rb:272:in `speech_box'
app/views/talks/new.html.erb:46:in `_app_views_talks_new_html_erb__3484685084088947386_2193902320'
actionpack (3.1.0) lib/action_view/template.rb:144:in `block in render' activesupport (3.1.0)
lib/active_support/notifications.rb:55:in `instrument' actionpack (3.1.0)
lib/action_view/template.rb:142:in `render' actionpack (3.1.0)
lib/action_view/renderer/template_renderer.rb:40:in `block (2 levels) in …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails-3

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

如何在用户注册Rails3&Devise后创建配置文件

我正在使用配置文件应用程序做一个简单的用户.用户注册并自动登录.到目前为止工作正常.现在,我想在注册成功后创建个人资料,并将用户重定向到他/她的个人资料.

我有一个用户模型和控制器.Devise还创建了注册控制器.我安装了宝石.我复制了设计文件,我计划覆盖创建操作.

首先,无论我在registrations_controller.rb中编辑什么都没有变化.

class Devise::RegistrationsController < ApplicationController
 prepend_before_filter :require_no_authentication, :only =>
[ :new, :create, :cancel ]
 prepend_before_filter :authenticate_scope!, :only =>
[:edit, :update, :destroy]
 include Devise::Controllers::InternalHelpers
Run Code Online (Sandbox Code Playgroud)

其次,如何插入配置文件创建步骤?

def create
   build_resource

   if resource.save
     if resource.active?
       set_flash_message :notice, :signed_up
       sign_in_and_redirect(resource_name, resource)
     else
       set_flash_message :notice, :inactive_signed_up, :reason =>
resource.inactive_message.to_s
       expire_session_data_after_sign_in!
       redirect_to after_inactive_sign_up_path_for(resource)
     end
   else
     clean_up_passwords(resource)
     render_with_scope :new
   end
 end
Run Code Online (Sandbox Code Playgroud)

我想补充一下

 current_user.create_profile under is resource.active?
Run Code Online (Sandbox Code Playgroud)

你们怎么解决这个问题?

profile controller devise ruby-on-rails-3

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

在Rails中保存Base64字符串

我想将图像保存为base64字符串作为Rails中模型的一部分.

有没有人有迁移文件的建议?
我假设简单地设置一个String类型是不合适的,因为字符串的大小通常很大,例如> 2MB.

migration postgresql base64 ruby-on-rails

4
推荐指数
1
解决办法
3525
查看次数

如何以root身份运行sudo命令?

我对我的服务器只有 root 访问权限,因此 sudo 命令不起作用。我正在尝试运行一个尝试使用 sudo 命令的命令,但由于我已经拥有 root 访问权限,它失败了。

未找到命令:sudo chmod +x /usr/local/bin/wkhtmltopdf

有没有办法让我运行这个命令?我可以以某种方式移出 root,或者让 root 暂时能够使用 sudo 命令吗?

debian sudo root chmod

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

帮助删除非法字符?

我使用用户输入字符串来创建一个网址,我只希望网址包含小写字母和连字符

例如example.com/this-is-a-url

在我的模型中,到目前为止我添加了:

  def to_param
      name.downcase.gsub(" ", "-")
  end
Run Code Online (Sandbox Code Playgroud)

这使它成为小写和连字符.如何删除所有非法字符,例如'/"$£%&等等?正则表达式可能是答案,但Rails中是否已为此目的内置了一些内容?

也许我应该创建一个验证来确保'name'只是空格和字母?是否有为此目的而内置的东西?

string url ruby-on-rails illegal-characters

2
推荐指数
1
解决办法
1159
查看次数

Apache Commons Hex编码错误

我正在尝试使用org.apache.commons.codec.binary.Hex来编码和解码String值:

例如:

Hex.encodeHex("10".getBytes()).toString();
Run Code Online (Sandbox Code Playgroud)

但是,这不是给我一个十六进制输出,但输出类似于:

[C @ 596d444a

任何想法为什么会这样?

java hex apache-commons-codec

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