Nowy programator ROR tutaj. Próbuję zbudować aplikację internetową, która umożliwia użytkownikowi wypełnienie formularza, w którym wprowadza się informacje o firmie, a kliknięcie przycisku Wyślij powoduje dodanie danych wejściowych do bazy danych.Ruby on Rails: pozwól użytkownikowi wprowadzić nowe informacje LUB kliknij menu rozwijane, aby wybrać istniejące informacje
W tej chwili, jeśli użytkownik miał utworzyć nowy wpis, zobaczyłby kilka pól, na przykład "Nazwa firmy". Jest tam puste pole do umieszczenia w nowej firmie, a obok jest rozwijane menu, które użytkownik może użyć, aby zobaczyć istniejące firmy w bazie danych.
<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") %>
szukam sposób, aby umożliwić użytkownikowi wprowadzić nową firmę lub kliknąć na menu rozwijanego i wybierz istniejącą firmę.
W tej chwili: Jeśli nic nie zostanie wprowadzone do pola tekstowego i nie wybrano żadnej opcji, zostanie zapisane jako puste. Jeśli coś zostanie wprowadzone, a żadna opcja nie zostanie wybrana, zostanie zapisane jako puste. Jeśli jednak coś zostanie wprowadzone, a coś zostanie wybrane z menu rozwijanego, opcja rozwijana zostanie zapisana.
Mam nadzieję, że nie zrobiłem tego zbyt zagmatwanego. Każda pomoc w ogóle zostanie doceniona.
Z góry dziękuję.
EDIT:
Moja tworzyć działania teraz wygląda to
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
koniec
i formularz widok:
<%= 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") %>
Nowa błąd jest teraz:
zła ilość argumentów (1 do 2)
Extracted Źródło: <% = etykieta: Company_Name%>
dzięki za pomoc!
czego można się spodziewać, jeśli użytkownik wybierze coś z listy rozwijanej, a także wpisać coś? – gabrielhilal
Spodziewałbym się, że dane wejściowe wpisane przez użytkownika będą priorytetem. – Jazz