Nuovo programmatore ROR qui. Sto cercando di creare un'applicazione Web che consenta a un utente di compilare un modulo, in cui immettere le informazioni di un'azienda e facendo clic su Invia, aggiunge l'input a un database.Ruby on Rails: consente all'utente di inserire una nuova informazione, OPPURE fare clic sul menu a discesa per selezionare le informazioni esistenti
Al momento, se l'utente doveva creare una nuova voce, vedrebbe alcuni campi, ad esempio "Nome azienda". C'è una casella vuota per metterli in una nuova azienda, e accanto a questo c'è un menù a tendina che l'utente può usare per vedere le aziende esistenti nel database.
<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") %>
Sto cercando un modo per consentire all'utente di inserire una nuova società oppure fare clic sul menu a discesa e selezionare una società esistente.
Al momento: Se non viene inserito nulla nella casella di testo e nessuna opzione dal menu a discesa selezionato, viene salvata come vuota. Se qualcosa viene inserito e nessuna opzione è selezionata, viene salvata come vuota. Tuttavia, se viene inserito qualcosa e viene selezionato qualcosa dal menu a discesa, l'opzione a discesa viene salvata.
Spero di non averlo reso troppo confuso. Qualsiasi aiuto sarà apprezzato.
Grazie in anticipo.
EDIT:
la mia ora creano l'azione assomiglia a questo fine
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
e la forma vista:
<%= 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") %>
Il nuovo errore è ora:
numero sbagliato di argomenti (1 per 2)
Estratte Fonte: <% = label: COMPANY_NAME%>
Grazie per il vostro aiuto!
cosa vi aspettate se un utente seleziona qualcosa da discesa e anche di tipo qualcosa? – gabrielhilal
Mi aspetto che l'input digitato dall'utente sia prioritario. – Jazz