Ruby on rails 3 带有复选框的多重更新布尔状态(Rails 3)

Ruby on rails 3 带有复选框的多重更新布尔状态(Rails 3),ruby-on-rails-3,haml,Ruby On Rails 3,Haml,这个问题我肯定一点也不难,但作为rails的新手,我有点迷路了。 看完Railscasts第52集后,我继续制作自己的幻灯片发布/未发布列表 这就是表单视图 = form_tag publish_admin_category_slides_path(@cat4), :method => "put" do #pricing %table#plans %thead %tr %th Image

这个问题我肯定一点也不难,但作为rails的新手,我有点迷路了。 看完Railscasts第52集后,我继续制作自己的幻灯片发布/未发布列表

这就是表单视图

    = form_tag publish_admin_category_slides_path(@cat4), :method => "put"  do 
#pricing    
    %table#plans
        %thead
            %tr
                %th Image
                %th Published

        %tbody
        - @image.each do |im|
            %tr.odd
                %td
                    = image_tag im.avatar.url(:thumb)

                    = link_to "Delete", admin_category_slide_path(@cat4,im), :method =>  "delete"

                    %span is

                %th 
                    = check_box_tag "slide_published[]", im.published ,im.published
使用控制器操作#发布

写这样的东西的正确方法是什么?
一个带有复选框的列表,用于更改属性的布尔状态和多次更新?

一些xp l8r我能够找到类似的内容。 如果有人有类似的问题,我会发布它

def publish

            @cat = Category.find(params[:category_id])
          if params[:slide_published]
             checked_slides = Slide.find(params[:slide_published])

          end

          unless checked_slides.blank?
            @cat.slides.all.each do |slide|
                if checked_slides.include?(slide)     
                    slide.update_attribute :published, true unless slide.published?   
                else
                    slide.update_attribute :published, false unless !slide.published?   
                end
            end
          end

          if checked_slides.blank?
            @cat.slides.all.each do |slide|

                slide.update_attribute :published, false unless !slide.published?
            end
          end
def publish

            @cat = Category.find(params[:category_id])
          if params[:slide_published]
             checked_slides = Slide.find(params[:slide_published])

          end

          unless checked_slides.blank?
            @cat.slides.all.each do |slide|
                if checked_slides.include?(slide)     
                    slide.update_attribute :published, true unless slide.published?   
                else
                    slide.update_attribute :published, false unless !slide.published?   
                end
            end
          end

          if checked_slides.blank?
            @cat.slides.all.each do |slide|

                slide.update_attribute :published, false unless !slide.published?
            end
          end