Ruby on rails 3 带有复选框的多重更新布尔状态(Rails 3)
这个问题我肯定一点也不难,但作为rails的新手,我有点迷路了。 看完Railscasts第52集后,我继续制作自己的幻灯片发布/未发布列表 这就是表单视图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
= 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