新ROR程序员在这里。我正在尝试构建一个Web应用程序,它允许用户填写表单,在其中输入公司信息,然后通过单击提交将其添加到数据库中。Ruby on Rails:允许用户输入新信息,或点击下拉菜单选择现有信息
目前,如果用户要创建一个新条目,他们会看到几个字段,例如“公司名称”。有一个空白的框让他们放入一家新公司,并在旁边有一个下拉菜单,用户可以使用该菜单查看数据库中的现有公司。
<div class="field">
<%= f.label :company_name %><br />
<%= f.text_field :company_name %>
<%= f.label :company_name %><br />
<%= f.select(:company_name, Company.all.map {|p| [p.company_name]}.uniq!, :prompt => "Select a Company") %>
我正在寻找一种方式,让用户输入一个新的公司,或点击下拉菜单并选择一个现有的公司。
目前: 如果没有输入到文本框,从下拉菜单中选择任何选项,它被保存为空白。 如果输入内容,并且未选择任何选项,则将其保存为空白。 但是,如果输入了某些内容并从下拉列表中选择了某个内容,则会保存下拉选项。
希望我还没有做出太混乱。任何帮助都将不胜感激。
在此先感谢。
编辑:
我创建动作现在看起来像这样
def create
@company = Company.new(params[:company])
@company.company_name = params[:new_company_name] unless params[:new_company_name].empty?
respond_to do |format|
if @company.save
format.html { redirect_to @company, notice: 'Company was successfully created.' }
format.json { render json: @company, status: :created, location: @company }
else
format.html { render action: "new" }
format.json { render json: @company.errors, status: :unprocessable_entity }
end
end
末
和形式的看法:现在
<%= label :company_name %><br />
<%= text_field :new_company_name %>
<%= f.label :company_name %><br />
<%= f.select(:company_name, Company.all.map {|p| [p.company_name]}.uniq!, :prompt => "Select a Company") %>
新的错误是:
错误的参数数目(1 2)
提取的源: <%=标签:COMPANY_NAME%>
感谢您的帮助!
如果用户从下拉列表中选择的东西,还可以键入的东西你能指望什么? – gabrielhilal 2012-07-18 09:47:39
我期望用户输入的输入将是优先的。 – Jazz 2012-07-18 09:50:16