【发布时间】:2014-04-09 13:29:23
【问题描述】:
我有 3 个模型 USER、EXPERT、HELPEE,如下面的截图所示:
我在用户模型上使用设计。
关系
class Expert < ActiveRecord::Base
belongs_to :user
class Helpee < ActiveRecord::Base
belongs_to :user
class User < ActiveRecord::Base
has_one :expert
has_one :helpee
我正在使用以下代码进行注册,效果很好:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :name %><br />
<%= f.text_field :name, :autofocus => true, :class => "form-control" %></div>
<div><%= f.label :email %><br />
<%= f.email_field :email, :class => "form-control" %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password, :class => "form-control" %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, :class => "form-control" %></div>
<br>
<div><%= f.hidden_field :role, value: "helpee" %><br />
<div><%= f.submit "Sign Up" , :class => "btn btn-primary"%></div>
<% end %>
但同样的逻辑不适用于 EDIT。
您能否建议如何创建 EDIT 表单?
【问题讨论】:
-
same logic is not working for EDIT?它怎么不工作?你试过什么?您已经从 Devise 获得了现成的编辑页面?问题出在哪里? -
registration_path(resource_name)=> 您应该将资源实例传递给 URL 助手,而不是资源名称。给它一个已经有 id 的记录,它应该更新它 -
@MrYoshiji
registration_path(resource_name)在设计中是正确的方式。请参阅设计注册表以进行编辑github.com/plataformatec/devise/blob/… -
@KirtiThorat 哦,我明白了,我应该使用 Devise 几次...嘿,您知道您是本月所有 Stackoverflow 声誉增长的第四名吗?请参阅stackexchange.com/leagues/1/month/stackoverflow/2014-04-01/…(2,535 个月声誉):恭喜!
-
@MrYoshiji 谢谢!! :)
标签: ruby-on-rails forms devise