重构和代码放置

时间:2011-10-04 15:47:12

标签: ruby-on-rails

我的编辑操作在视图中有一系列单选按钮。我想填写当前所选字段的值。我设法让这个工作,虽然我觉得代码可能更好,也许应该在模型中。

控制器:

      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.

视图:

         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 :(得分:0)

您的型号代码是什么?我猜一个评级有很多环境?

在任何情况下,您都可以在视图中循环遍历所有这些并使您的:checked参数成为布尔值。

类似

 <% @environs.each do |env| -%>
   <%= f.radio_button :environ, env.id, :checked => (@rating.environ == env) %>
 <% end -%>