Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 用于在Rails 3中使用多态关联的形式_中的未定义方法_Ruby On Rails_Ruby On Rails 3_Polymorphic Associations - Fatal编程技术网

Ruby on rails 用于在Rails 3中使用多态关联的形式_中的未定义方法

Ruby on rails 用于在Rails 3中使用多态关联的形式_中的未定义方法,ruby-on-rails,ruby-on-rails-3,polymorphic-associations,Ruby On Rails,Ruby On Rails 3,Polymorphic Associations,让我解释一下我想做什么,然后问我的问题。我对Ruby/Rails完全是个新手,但却是一个经验丰富的开发人员 我想要什么:我想要开发人员、客户和管理员。我想要一个通用的身份验证机制 什么似乎是最好的:我认为最好的建模方式是让一个用户处理身份验证,然后是某种继承或扩展每个用户类型的功能 我在尝试什么:我在尝试一种叫做多态关联()的东西,但我错过了一些东西。现在,如果我转到/developers/new,我会得到以下信息 in developers/_fields.html.erb where lin

让我解释一下我想做什么,然后问我的问题。我对Ruby/Rails完全是个新手,但却是一个经验丰富的开发人员

我想要什么:我想要开发人员、客户和管理员。我想要一个通用的身份验证机制

什么似乎是最好的:我认为最好的建模方式是让一个用户处理身份验证,然后是某种继承或扩展每个用户类型的功能

我在尝试什么:我在尝试一种叫做多态关联()的东西,但我错过了一些东西。现在,如果我转到
/developers/new
,我会得到以下信息

in developers/_fields.html.erb where line #4 raised:
undefined method `name' for #<Developer:0x00000002bafd18>
开发人员#新建控制器代码段

def new
  @developer = Developer.new
  @developer.user = User.new
end
new.html.erb开发者代码片段

<div class="row">
  <div class="span6 offset3">
    <%= form_for (@developer) do |f| %>
      <%= render 'fields', f: f %>
      <%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
    <% end %>
  </div>
</div>

最后 \u fields.html.erb代码段

class User < ActiveRecord::Base
  attr_accessible :email, :name, :password, :password_confirmation, :profile_id, :profile_type
  has_secure_password
  belongs_to :profile, :polymorphic => true
  ...
end
class Developer < ActiveRecord::Base
  attr_accessible :skype_name
  has_one :user, :as => :profile, :dependent => :destroy
  accepts_nested_attributes_for :user
end
resources :developers
<%= render 'shared/error_messages' %>
<%= f.label :name %>
<%= f.text_field :name %>
...

...
我发现的最接近的问题是,我尝试了他们的答案中的一些东西,但都没有帮助

我可以创建一个新的用户和开发人员,通过rails控制台彼此链接,但我不知道我在web上做错了什么


任何帮助都将不胜感激。

您正在尝试访问
开发人员
父项范围内的
用户
属性。使用的
字段\u修改范围:

<%= render 'shared/error_messages' %>
<%= f.fields_for :user do |u| %>
  <%= u.label :name %>
  <%= u.text_field :name %>
<% end %>


您可能还希望开发人员模型接受用户的嵌套属性。请看一些示例。

错误发生在哪个文件中?developers/\u fields.html.erb我也会编辑这个问题。感谢您指出这一点。可能不是这样,但表单似乎假设开发人员有名称,但用户是有名称的人。有没有办法把
?或者表单应该是@user的,因为它似乎是更广泛的对象?我刚刚掌握了这些ruby on rails表单的诀窍,所以我对这里的建议犹豫不决。该死的,我应该有信心发布一个答案!很高兴知道我走对了路!我把这个问题留着以后参考。谢谢!它仍然坏了,但因为现在的身份验证检查。我遇到的问题已经解决了。