Search code examples
ruby-on-railsrubydrop-down-menuhtml-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?


Solution

  • 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.