好的,事实证明这真的很简单。您不需要在控制器或模型中执行任何逻辑。您只需在注册表中执行以下操作:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
上面的行只是form_for
创建表单的行。脚手架,或者在这种情况下,Devise 将创建它。记得do |f|
最后。
<%= devise_error_messages! %>
<%= f.label :Whats_your_goal? %><br />
<%= f.collection_select :user_goal_id, UserGoals.all, :id, :name, { :include_blank => ""}%>
第一行只是字段的标签
第二行是下拉菜单。f.collection_select
告诉您的表单生成器这将是一个选项的下拉列表。
:user_goal_id
是用户表中我要记录表中foreign key
目标的字段的名称user_goals
。
UserGoals.all
是我希望下拉列表从中填充的数据库表的名称。.all
说我想要那个数据库表中的所有项目
我相信:id,
通过它们的数据库 ID 号或主键提取项目,并:name
说给我表的名称列,而不是描述或其他东西。
最后,{ :include_blank => "" }
只需在下拉列表顶部创建一个空白区域,因此没有默认选择。如果需要,您还可以在两者之间添加消息""
。
我很难找到一个简单的解释,可能是因为它太基础了。希望其他人会发现这很有用。