当我尝试使用AL创建新用户时,我的生产安装上出现了一个奇怪的错误:
ActiveRecord :: StatementInvalid:Mysql :: Error:列'crypted_password'不能为null:INSERT INTO users
特别奇怪的b/c它在我当地的盒子上按预期工作.
两个盒子上的RUNning Rails 2.3.2和ruby 1.8.7.
user.rb:
class User < ActiveRecord::Base
before_create :set_username
acts_as_authentic do |c|
c.require_password_confirmation = false
c.login_field = "email"
c.validates_length_of_password_field_options = {:minimum => 4}
c.validate_login_field = false #don't validate email field with additional validations
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的生产控制台的输出:
>> u = User.new
=> #<User id: nil, username: nil, email: nil, crypted_password: nil,
password_salt: nil, persistence_token: nil, single_access_token: nil,
perishable_token: nil, login_count: 0, failed_login_count: 0,
last_request_at: nil, current_login_at: nil, last_login_at: nil,
current_login_ip: …Run Code Online (Sandbox Code Playgroud) 我是rails的新手,对插件有疑问.在ROR应用程序中使用第三方插件时,您可以采用两种方法:
1)使用sudo gem install GEM安装gem,然后在rails项目中"require"它
2)使用script/generate插件安装PLUGIN安装插件.代码中的插件出现在您的供应商目录中,然后您很高兴(有时,我无法通过此方法使Devise工作).
既然看起来这两种方法都完成了同样的事情,为什么我要选择一种方法而不是另一种方法.
谢谢,
我需要我的应用程序有一个带有电子邮件功能的模块.这将具有电子邮件客户端的所有功能.每个用户都有一个收件箱,发件箱,发送文件夹,自定义文件夹,子文件夹等.他们应该能够发送,接收,转发,回复电子邮件.我可以使用任何宝石/插件吗?如果可以选择与Google Apps等集成,请建议.
我写的一个插件有一个奇怪的问题.奇怪的是,我有另外一个打开各种ActiveRecord类的插件,它没有自动重新加载的问题.
在我的插件init.rb文件中
User.class_eval do
has_one :reputation
include Karma
alias :rep :reputation
end
Run Code Online (Sandbox Code Playgroud)
如果我在生产模式或rails控制台中运行它没有问题.当我在开发中运行它时它会加载一次,但除非我重新启动服务器,否则永远不会再加载它.
我在我正在使用的其他插件(acts_as_readable)中找不到任何特殊内容,它以相同的方式打开User.
编辑:
我做了:
ActiveRecord::Base.class_eval do
class << self
def has_karma_values
has_one :reputation
alias :rep :reputation
end
end
end
Run Code Online (Sandbox Code Playgroud)
在plugiin的init.rb文件中做了
class User < ActiveRecord::Base
...
has_karma_values
...
end
Run Code Online (Sandbox Code Playgroud)
并且得到关于has_karma_values不存在的相同错误.此时尚未加载插件.
令人困惑的是,作为可读的行为完全没有问题
User.class_eval do
has_many :readings
end
ActiveRecord::Base.send :include, ActiveRecord::Acts::Readable
Run Code Online (Sandbox Code Playgroud)
但我的确如此.
这是我完整的init.rb文件
require 'reputation'
require 'karma_name'
require 'karma_tag'
require 'karma_title'
require 'acts_as_karmable'
require 'karma'
require File.expand_path('../lib/generators/karma_generator', __FILE__)
KarmaTitle.setup 'Default'
ActiveRecord::Base.class_eval do
class << self
def has_karma_values
has_one :reputation
alias :rep …Run Code Online (Sandbox Code Playgroud) 安装capybara-webkit后,我尝试在规范中尝试测试,这是我的测试:
Capybara.default_driver = :webkit
page.execute_script("$('#submit_direction').attr('value', '1');$('#quizForm').submit()")
Run Code Online (Sandbox Code Playgroud)
然后,我收到此错误:
/home/sam/.rvm/gems/ruby-1.9.3-p0@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:136:警告:不安全的世界可写dir/home/sam/Documents/PATR中的RoR,模式040777 undefined | 0 | ReferenceError:找不到变量:$
Capybara :: Driver :: Webkit :: WebkitInvalidResponseError:Javascript无法执行
有什么好主意吗?
ruby-on-rails-plugins capybara ruby-on-rails-3 capybara-webkit
我正在尝试编写一个插件,以下列方式为ActiveRecord中的某些方法添加别名:
class Foo < ActiveRecord::Base
include MyOwnPlugin
acts_as_my_own_plugin :methods => [:bar]
def bar
puts 'do something'
end
end
Run Code Online (Sandbox Code Playgroud)
在插件内:
module MyOwnPlugin
def self.included(base)
base.class_eval do
extend ClassMethods
end
end
module ClassMethods
def acts_as_my_own_plugin(options)
options[:methods].each do |m|
self.class_eval <<-END
alias_method :origin_#{m}, :#{m}
END
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
这种方法不起作用,因为当运行#acts_as_my_own_plugin时,Foo #bar尚未定义,因为它尚未运行.
把acts_as_my_own_plugin:方法=> [:巴] AFTER条函数声明将工作.然而,这并不漂亮.
我希望能够将acts_as_my_own_plugin置于类定义之上,就像大多数插件一样.
是否有另一种方法来满足这种条件?
对于类似论坛的应用程序,我需要能够向每个用户显示未读(新)消息.是否有任何Rails插件/ gem用于此目的?
或者:有没有任何提示以有效的方式完成这项工作?我正在考虑一个额外的数据库表,为每个用户存储每条消息的未读状态(或读状态?).但这似乎是蛮力的方法,也许有一个更聪明的解决方案......
祝愿乔治
每当我运行rails脚本/插件安装来使用git安装插件时,从github它就会"挂起".
$ script/plugin -v install http://github.com/ryanstout/blog_kit.git
Run Code Online (Sandbox Code Playgroud)
它"挂起".-v给出了以下输出:
Plugins will be installed using http
git init
Initialized empty Git repository in /home/XXX/vendor/plugins/blog_kit/.git/
git pull --depth 1 http://github.com/ryanstout/blog_kit.git
Run Code Online (Sandbox Code Playgroud)
这就是它挂起的地方.('XXX'由我在这个外出中编辑)
当我用^ C中断该命令,然后手动运行'git pull --depth 1 ...时,它也会挂起.
'lsof -i | grep github'显示以下内容:
git-remot 11710 ber 8u IPv4 182786 0t0 TCP yasmine.fritz.box:42324->github.com:www(CLOSE_WAIT)git-remot 11710 ber 9u IPv4 182798 0t0 TCP yasmine.fritz.box:42325->github.com: www(CLOSE_WAIT)git 11712 ber 8u IPv4 182786 0t0 TCP yasmine.fritz.box:42324->github.com:www(CLOSE_WAIT)
所以看起来实际上有一个连接,但没有任何东西被拉入.
我有什么想法可以深入研究这个问题?我错过了一些README吗?
我有愚蠢的问题,上面找不到答案.
我试图从https://github.com/paytonrules/selenium-on-rails安装Selenium,
他们说:
安装:
在Rails上安装Selenium:脚本/插件安装
我应该在哪里写这些文字?
从rails根目录终端 - 没有影响.
我甚至没有文件夹"script"中的文件夹"plugin",并且创建没有帮助.拜托,请为我解决这个问题
现在我正在使用rails 3.0.0.i我正在使用Ubuntu 11.10,64位os.i想要安装wkhtmltopdf.please告诉我静态版本的wkhtmltopdf.
ruby-on-rails ruby-on-rails-plugins wkhtmltopdf ruby-on-rails-3 wicked-pdf
ruby ×2
rubygems ×2
activerecord ×1
authlogic ×1
capybara ×1
email-client ×1
git ×1
github ×1
install ×1
selenium ×1
wicked-pdf ×1
wkhtmltopdf ×1