How set "selected" in option ROR - ruby-on-rails

in _form.html.erb file I wrote:
<%= f.number_field :tov_id %>
and that code produce this html :
<input type="number" value="3" name="price[tov_id]" id="price_tov_id" />
this code:
<%= select_tag(:tov_id, options_for_select(#tovs,2), :prompt => "select tov" ) %>
make this html
<select name="tov_id" id="tov_id">
<option value="">select tov</option>
<option value="1">brake pad</option>
<option selected="selected" value="2" >nut</option>
<option value="3">bolt</option></select>
as we can see : the second parameter to option_to_select respond to selected option
But when I wrote this:
<%= select_tag(:tov_id, options_for_select(#tovs , :tov_id ), :prompt => "Select tov" ) %>
no any selected appear :(
<select name="tov_id" id="tov_id"><option value="">Select tov</option><option value="1">brake pad</option>
<option value="2">nut</option>
<option value="3">bolt</option></select>
How can I get the value from :tov_id and put it to options_for_select ?

Related

Rails 5.2 - Going From Select To Radio Buttons

In my ERB view, I have the following two types of select inside a form.
<%= f.select :shape, Diamond.shapes.map { |k,v| [k.humanize, v] },{:include_blank => ''},{:class => "form-control", :required => true} %>
<%= select_tag "term[]", options_for_select(Diamond.colors.map { |k,v| [k.upcase, v] }), class: "form-control" %>
I am wanting to change it into a radio button or just button and cannot figure out how to code it correctly. The options I have are an enum saved in Diamond.shapes.
Here are the 2 HTML element.
<select class="form-control" required="required" name="wholesale[shape]" id="wholesale_shape"><option value=""></option>
<option value="1">Asscher</option>
<option value="2">Emerald</option>
<option value="3">Heart</option>
<option value="4">Marquise</option>
<option value="5">Oval</option>
<option value="6">Pear</option>
<option value="7">Princess</option>
<option value="8">Radiant</option>
<option value="9">Round</option>
<option value="10">Cushion</option>
</select>
<select name="term[]" id="term_" class="form-control"><option value="14">D</option>
<option value="15">E</option>
<option value="16">F</option>
<option value="17">G</option>
<option value="18">H</option>
<option value="19">I</option>
<option value="20">J</option>
<option value="21">K</option>
<option value="22">L</option>
<option value="23">M</option>
<option value="24">N</option></select>
Any ideas? I have been trying radio button collections but havent figured out the correct coding and am not even sure if that is the best way to go. Thank you.
You can do it like this:
<% Diamond.colors.keys.each do |color| %>
<%= f.radio_button :term, color %>
<%= f.label color.to_sym %>
<% end %>

Select option for Ruby on Rails

I have sign up form. how can I make select and option form for '<%=' format. can you please help me.
<%= form_for(#patient, url: signup_path, :html => {class: 'register-form', :style => "display: inherit"}) do |f| %>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">İsim</label>
<div class="input-icon">
<i class="fa fa-font"></i>
<%= f.text_field :name, class: 'form-control placeholder-no-fix', :placeholder => "İsim" %>
</div>
</div>
<div class="form-group">
<label class="control-label visible-ie8 visible-ie9">Ülke</label>
<select name="country" id="select2_sample4" class="select2 form-control">
<option value="">Ülke Seçiniz...</option>
<option value="Türkiye">Türkiye</option>
<option value="Afganistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
<option value="Andorra">Andorra</option>
<option value="Angola">Angola</option>
</select>
</div>
<button type="submit" id="register-submit-btn" class="btn green-haze pull-right"> Kayıt ol </button>
Your question is kind of vague; however, I think I get what you're asking. It looks like your data for the select field is static, so you may try it like this:
Then use the following instead of the HTML you have there:
<%= select_tag(:country, options_for_select([['Select Country', '0'], ['Albania', 'Albania']], '0'))%>
This will generate the following:
<select name="country" id="country">
<option value="0" selected="selected">Select Country</option>
<option value="Albania">Albania</option>
</select>
If you wanted to have a different default selected, just specify it at the end. For example:
<%= select_tag(:country, options_for_select([['Select Country', '0'], ['Albania', 'Albania']], 'Albania'))%>
Generates:
<select name="country" id="country">
<option value="0">Select Country</option>
<option selected = "selected" value="Albania">Albania</option>
</select>
Hope that helps.

how to show selected in f.select in rails4 view

Hi I am having this in my view
<%= f.select :role,:collection => Employee.roles.keys%>
I want to show selected in this i.e #employee[:role]. When I give this
<%= f.select :role,:collection => Employee.roles.keys, :selected => #employee[:role] %>
then i get this type of list
<select id="employee_role" name="employee[role]">
<optgroup label="collection">
<option value="super_admin">super_admin</option>
<option value="hr">hr</option>
<option value="admin">admin</option>
<option value="inventory">inventory</option>
<option value="employee">employee</option>
</optgroup>
<optgroup label="selected">HR</optgroup>
</select>
I don't know how to show my selected value. Please guide in solving this. Thanks in advance.
You can use this following code.
<%= f.select :role,Employee.roles.keys, :selected => #employee[:role] %>

Options for Select, stick at selected Value

I'm trying to get the User's Selection to stick in the options_for_select.
Heres my code:
<div class="form-group">
<%= f.label :team_for, "I'm for" %> <br>
<%= f.select :team_for, options_for_select(User::TEAMFOR), :prompt => "Please Select" %>
</div>
How can i set this up?
My HTML output:
<div class="form-group">
<label for="user_team_for">I'm for</label> <br>
<select id="user_team_for" name="user[team_for]">
<option value="">Please Select</option>
<option value="Team Druid">Team 1</option>
<option value="Team Hunter">Team 2</option>
<option value="Team Mage">Team 3</option>
<option value="Team Paladin">Team 4</option>
<option value="Team Priest">Team 5</option>
<option value="Team Rogue">Team 6</option>
<option value="Team Shaman">Team 7</option>
<option value="Team Warrior">Team 8</option></select>
</div>
If i select something, it gets into the Database and is shown correctly, but on the Edit Page the selection is not shown, instead always "Team 1" is set as selected.
I need the selected value to be shown.
The 2nd param to options_for_select is the selected value: http://guides.rubyonrails.org/form_helpers.html#option-tags-from-a-collection-of-arbitrary-objects
The second argument to options_for_select must be exactly equal to the desired internal value. In particular if the value is the integer 2 you cannot pass "2" to options_for_select — you must pass 2. Be aware of values extracted from the params hash as they are all strings.
Try this:
<%= f.select :team_for, options_for_select(User::TEAMFOR, #user.team_for), :prompt => "Please Select" %>

select option tag in ror?

i am new at ror.
option select tag in rails
<%= select_tag(:city_id, '<option value="1">Lisbon</option>,<option value="2">Madrid</option>' %>
produces this html:
<select id="city_id" name="city_id">
<option value="1">Lisbon</option>
<option value="2">hjkLisbon</option>
</select>
and option select tag
<%= select_tag(:city_id, options_for_select([['Lisbon', 1], ['Madrid', 2]])) %>
produces this html:
<select id="city_id" name="city_id">
<option value="1">Lisbon</option>
<option value="2">Madrid</option>
</select>
for second option select tag i am getting the dropdown with options but in first one i am not getting it, only dropdown is there in first one but no options.
can anybody please explain me why it is so?
If you only have these two cities you can use normal html
<select id="city_id" name="city_id">
<option value="1">Lisbon</option>
<option value="2">Madrid</option>
</select>
If you fetch the cities from you database you can do
select_tag ‘city_id’, options_for_select(#cities.collect{ |u| [u.name, u.id] })
This would generate something like:
<select id="city_id" name="city_id">
<option value="1">Lisbon</option>
<option value="2">Madrid</option>
</select>
Do not be afraid to use html. The most simple solution is the best solution.
Ref this
Change
<%= select_tag(:city_id, '<option value="1">Lisbon</option>,<option value="2">Madrid</option>' %>
To
<%= select_tag(:city_id, '<option value="1">Lisbon</option>,<option value="2">Madrid</option>') %>
You are not closing the select tag i.e. ) is missing
if you really want to keep selected the country name on edit page then..
<%= f.select :country, (country_name), :selected => #model.country %>
Where country_name is a method in helper.

Resources