お世話になります。
pry-railsのコンソールと、通常のconsoleで挙動が違うようです。
pry-railsに問題があるのかなと思ったのですが、判断できません。
ご教授のほどよろしくお願いいたします。
※ 投稿中に気づきました
エラーの原因はモデルのテーブルにopenという列がある場合に発生するようです。
これはpry-railsのバグと考えてもよいのでしょうか?
確信が持てればIssueを投稿してみたいのですが(初心者なので確信がなく)
環境は
- Rails 4.0.1
- Ruby 2.0.0-p247
- gem:pry-rails (0.3.2)
エラー内容
4.0.1@2.0.0 (main)> Account.new
Hirb Error: wrong number of arguments (0 for 1+)
/Users/kntmrkm/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/open-uri.rb:28:in `open'
/private/var/www/html/prj/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.1/lib/hirb/helpers/object_table.rb:10:in `block (2 levels) in render'
/private/var/www/html/prj/vendor/bundle/ruby/2.0.0/gems/hirb-0.7.1/lib/hirb/helpers/object_table.rb:10:in `each'
Gemfileからpry-railsを除きbundleし、Railsの通常のコンソール(rails console)からAccount.newするとエラーは出ません。
Accountモデル
他のモデルではCommonを継承してもnewできる。
Accountモデルにはopenという列があります。
class Account < Common
after_create do
create_configuration
create_sequence
end
has_one :configuration, dependent: :destroy
has_one :sequence, dependent: :destroy
validates :name, presence: true, length: { maximum: 80 }
validates :email, presence: true
validates :email, length: { maximum: 50 }, format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }, allow_blank: true
private
def create_configuration
self.create_configuration!
end
def create_sequence
self.create_sequence!
end
end
Commonモデル
class Common < ActiveRecord::Base
self.abstract_class = true
before_save { self.email = email.downcase if self.email }
private
def create_url_token
self.url_token = SecureRandom.urlsafe_base64 if self.url_token
end
end