Nuevo programador ROR aquí. Intento crear una aplicación web que permita a un usuario completar un formulario, donde ingrese la información de una empresa, y al hacer clic en enviar, agrega la entrada a una base de datos.Ruby on Rails: permite al usuario ingresar una nueva información, O haga clic en el menú desplegable para seleccionar la información existente
Por el momento, si el usuario creara una nueva entrada, vería algunos campos, por ejemplo, "Nombre de la compañía". Hay un recuadro en blanco para que coloquen una nueva compañía, y junto a eso, hay un menú desplegable que el usuario puede usar para ver las compañías existentes en la base de datos.
<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") %>
estoy buscando una manera de permitir que el usuario introduzca una nueva empresa, o haga clic en el menú desplegable y seleccionar una empresa ya existente.
Por el momento: Si no se ingresa nada en el cuadro de texto y no se selecciona ninguna opción de la lista desplegable, se guarda en blanco. Si se ingresa algo y no se selecciona ninguna opción, se guarda en blanco. Sin embargo, si se ingresa algo y se selecciona algo del menú desplegable, se guarda la opción desplegable.
Espero que no lo haya hecho demasiado confuso. Cualquier ayuda será apreciada.
Gracias de antemano.
EDIT:
Mi ahora crean la acción parece que este fin
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
y forma de la visión:
<%= 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") %>
El nuevo error es ahora:
número incorrecto de argumentos (1) para 2
Extraídas Fuente: <% = etiqueta: COMPANY_NAME%
>
Gracias por su ayuda!
lo qué se puede esperar si un usuario selecciona algo de desplegable y también escribir algo? – gabrielhilal
Esperaría que la entrada que el usuario tipeó sea la prioridad. – Jazz