Ruby 为什么我会犯错误;未定义的方法`name';至于;在Formtastic/haml视图中,其中;名称“;模型上是否有属性?

Ruby 为什么我会犯错误;未定义的方法`name';至于;在Formtastic/haml视图中,其中;名称“;模型上是否有属性?,ruby,ruby-on-rails-3,devise,haml,formtastic,Ruby,Ruby On Rails 3,Devise,Haml,Formtastic,这可能有点愚蠢,但我对rails和ruby的了解还远远不够。我有下面的模式和视图,但是我得到了下面提到的错误。业务继承自Desive帐户,因此电子邮件和密码来自该帐户 任何帮助都将不胜感激,谢谢 模式: create_table "businesses", :force => true do |t| t.string "name" t.string "street" t.string &qu

这可能有点愚蠢,但我对rails和ruby的了解还远远不够。我有下面的模式和视图,但是我得到了下面提到的错误。业务继承自Desive帐户,因此电子邮件和密码来自该帐户

任何帮助都将不胜感激,谢谢

模式:

  create_table "businesses", :force => true do |t|
    t.string   "name"
    t.string   "street"
    t.string   "city"
    t.string   "zip"
    t.datetime "created_at"
    t.datetime "updated_at"
  end
#registrationForm
  -semantic_form_for(resource, :as => resource_name, :url=> registration_path(resource_name)) do |f|
    =f.input :name
    =f.input :email
    =f.input :password
    =f.input :password_confirmation
    =f.buttons
undefined method 'name' for
<Business:0x000000052690f8 > Extracted source (around line #3):
查看:

  create_table "businesses", :force => true do |t|
    t.string   "name"
    t.string   "street"
    t.string   "city"
    t.string   "zip"
    t.datetime "created_at"
    t.datetime "updated_at"
  end
#registrationForm
  -semantic_form_for(resource, :as => resource_name, :url=> registration_path(resource_name)) do |f|
    =f.input :name
    =f.input :email
    =f.input :password
    =f.input :password_confirmation
    =f.buttons
undefined method 'name' for
<Business:0x000000052690f8 > Extracted source (around line #3):
错误:

  create_table "businesses", :force => true do |t|
    t.string   "name"
    t.string   "street"
    t.string   "city"
    t.string   "zip"
    t.datetime "created_at"
    t.datetime "updated_at"
  end
#registrationForm
  -semantic_form_for(resource, :as => resource_name, :url=> registration_path(resource_name)) do |f|
    =f.input :name
    =f.input :email
    =f.input :password
    =f.input :password_confirmation
    =f.buttons
undefined method 'name' for
<Business:0x000000052690f8 > Extracted source (around line #3):
型号

class Business < Account 
end
类业务
重新加载架构后的控制台

k = Business.new ( :name =>"test" )
                          ^
(irb):1: syntax error, unexpected ')', expecting $end
    from /home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
    from /home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
    from /home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
k=Business.new(:name=>“test”)
^
(irb):1:语法错误,意外“'),应为$end
from/home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in'start'
from/home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in'start'
from/home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/commands.rb:23:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'

再次尝试加载您的架构

rake db:schema:load

再次尝试加载您的架构

rake db:schema:load

您有一个名为“accounts”的表和一个名为“businesss”的表

帐户由Desive创建,具有其所有属性,并指向“帐户”表。 业务继承自Account,因此使用Rails的STI()特性。因此,它也指向“账户”表

如果你有
Business
,它会指向你的“Business”表。ActiveRecord的STI机制非常奇怪

我认为您需要更多地考虑您希望数据模型如何工作。也许业务应该
属于\u:account
并拥有相应的:account\u id


或者您可以将所有“业务”列添加到accounts表中。

您有一个名为“accounts”的表和一个名为“Businesss”的表

帐户由Desive创建,具有其所有属性,并指向“帐户”表。 业务继承自Account,因此使用Rails的STI()特性。因此,它也指向“账户”表

如果你有
Business
,它会指向你的“Business”表。ActiveRecord的STI机制非常奇怪

我认为您需要更多地考虑您希望数据模型如何工作。也许业务应该
属于\u:account
并拥有相应的:account\u id


或者您可以将所有“业务”列添加到accounts表中。

@fl00r我添加了控制器和路由。rb
未定义的方法“name”用于什么?@fl00r抱歉,看起来它被格式占用了。它的#希望您已经执行了所有迁移?是的,只有两个模型(帐户和业务)@fl00r我添加了控制器和路由。rb
未定义的方法“name”用于什么?@fl00r抱歉,看起来它被格式化吞没了。它#希望您已经执行了所有迁移?是的,只有两个模型(客户和业务),这让我更进一步。按照您关于使用控制台的建议,我收到了一个错误(在上面的编辑中发布)。看起来可能是gem或其他东西出现了问题。。啊。你帮的人够多了。非常感谢。重读我上面的评论,并不意味着可能听起来势利。我只是想说我不想再占用你的时间了,我感谢你的帮助。再次感谢。好吧,这让我更接近了。按照您关于使用控制台的建议,我收到了一个错误(在上面的编辑中发布)。看起来可能是gem或其他东西出现了问题。。啊。你帮的人够多了。非常感谢。重读我上面的评论,并不意味着可能听起来势利。我只是想说我不想再占用你的时间了,我感谢你的帮助。再次感谢。啊哈,好吧,那种(但不是真的)对我来说是有意义的。这给我留下了一个我想要的模型,但不知道如何去做。如果我在其工作流程之外创建一个Desive帐户(在本例中,它将通过业务),我如何确保工作流程在事实发生后继续?您所说的工作流程是指“发送电子邮件”吗?如果是这样的话,我相信Desive会在创建account对象时发送它们,无论您是从它的控制器还是您自己的代码中发送。啊哈,好吧,这种(但不是真的)对我来说是有意义的。这给我留下了一个我想要的模型,但不知道如何去做。如果我在其工作流程之外创建一个Desive帐户(在本例中,它将通过业务),我如何确保工作流程在事实发生后继续?您所说的工作流程是指“发送电子邮件”吗?如果是这样,我相信designe会在创建account对象时发送它们,无论您是从其控制器还是您自己的代码中发送。