我有一个应用程序,用户可以在其中创建一个提交到数据库中的项目。
<div class="project_name">
Project Name:
<%= f.text_field :project_name,:maxlength => 30 %>
</div>
<%= label_tag :new_client, "Client:" %><br/>
<%= text_field_tag :new_client, nil, :maxlength => 30%>
Or
<%= f.select( :new_client, Project.all.map {|p| [p.new_client]}.uniq, :prompt => "Select an new_client") %>
</div>
在这里,他们可以选择提交新项目名称的文本,然后可以选择选择现有的客户端,或者输入一个新的客户端,该客户端将存储在数据库中,稍后将在下拉列表中用于创建的下一个项目。
我试图增加第三种选择,他们可以选择一个行业。然而,这一次,用户可以为一个项目选择许多行业。对此,最好的方法是什么?
我想在另一个表中预先填充一个包含所有最常见行业的下拉列表,如果用户想要另一个,他们可以单击按钮调出另一个下拉列表。如果行业不存在,可以在文本字段中输入一个,该字段将与该项目条目一起保存,并保存到新的行业表中,然后该表将可供下一个用户使用。
希望有人能给我指明正确的方向。我是新手,所以要放松。
您应该查看这些视频http://railscasts.com/episodes/196-nested-model-form-part-1对于这种情况,我使用recordselectgem来选择现有的对象,然后使用jquery模板将对象添加到当前表单中。但要做到这一点,你必须做一些js的工作。相反,我认为您也可以使用一个简单的下拉列表,其中包含:multiple=>true选项来选择多个对象。做到这一点的最好方法不是很简单。。。但我认为您应该从rails-casts复杂的表单示例开始,了解如何处理嵌套表单。