Рефакторинг и размещение кода - PullRequest
0 голосов
/ 04 октября 2011

Мое действие редактирования имеет ряд переключателей в представлении.Я хочу заполнить значение текущего выбранного поля.Мне удалось заставить это работать, хотя я чувствую, что код мог бы быть лучше и, возможно, также должен быть в модели.

контроллер:

      def edit
           @rating = Rating.find(params[:id])

       @a,@b,@c,@d,@e,@f,@g,@h,@i,@j = false
          if @rating.environ == 1
         @a = true
          elsif @rating.environ == 2
         @b = true
          elsif @rating.environ == 3
         @c = true
           elsif @rating.environ == 4
         @d = true
        .
        .
        .
        etc.

view:

         1<%= f.radio_button :environ, 1, :checked => @a %>
         2<%= f.radio_button :environ, 2, :checked => @b %>
         3<%= f.radio_button :environ, 3, :checked => @c %>
         .
         .
        etc..

1 Ответ

0 голосов
/ 04 октября 2011

Какой у вас код модели? Я предполагаю, что рейтинг имеет много окрестностей?

В любом случае, вы можете просто просмотреть все их в представлении и сделать ваш аргумент: checked логическим значением.

что-то вроде

 <% @environs.each do |env| -%>
   <%= f.radio_button :environ, env.id, :checked => (@rating.environ == env) %>
 <% end -%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...