Rails выберите список возвращается к началу? - PullRequest
0 голосов
/ 18 мая 2010

В моем приложении rails есть несколько списков выбора, например:

<li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]} %></span></li>

Все они работают хорошо, за исключением - иногда, если вы переходите в режим редактирования, список выбора возвращается к верхнему элементу, а не к элементу, который был выбран при создании. Поэтому, если вы перейдете в режим редактирования, а затем нажмете кнопку «Обновить», фактически не внося никаких изменений, списки по умолчанию станут верхним элементом, даже если вы их не трогали.

Есть ли способ обойти это?

Спасибо

Danny

EDIT:

<% form_for (@kase), :html => { :multipart => true } do |f|  %>


<li>Appointed Surveyor<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => @kase.appointedsurveyor_id}  %></span></li>
    <li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => @kase.surveyorperson_id} %></span></li>

Я пробовал вышеупомянутое, но, к сожалению, он все еще возвращается к значению по умолчанию.

Я застрял в этом, я не могу найти никаких учебников и т.д. по этому вопросу.

РЕДАКТИРОВАТЬ 2:

<li>Appointed Surveyor<span><%= f.select :appointedsurveyor_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => (@kase.appointedsurveyor_id rescue "")} %></span></li>
    <li>Surveyor Name<span><%= f.select :surveyorperson_id, Person.all.collect { |x| [x.personname, x.id]}, {:selected => (@kase.surveyorperson_id rescue "")} %></span></li>

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

С третьим параметром вы можете убедиться в этом, попробуйте следующий код:

<li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]}, {:selected => @your_instance_name.company_id} %></span></li>

Убедитесь, что вы заменили @your_instance_name переменной экземпляра, которую вы используете в теге form_for.

Надеюсь, это поможет.

0 голосов
/ 19 мая 2010

Оказывается, у меня в базе данных были поля, а не целые числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...