0

我有从 сontributed API 创建的视图

=form_tag add_group_vk_vk_entries_path, method: :put do
  -length_of_array = @vk_groups['message']['vk'].length
    .row-fluid
      -@vk_groups['message']['vk'][1..length_of_array].each do|item| 
        .span4
          p= check_box_tag "vk_groups[]", item['gid']
          p=item['name']
          p=image_tag item['photo'], :size => "100x100",:class => "img-circle"
= submit_tag "ok" 

我想通过 check_box_tag 将此 api 中的数据发送到我的控制器。我不仅要发送 item['gid'] 我还想将我通过一个 check_box_tag 检查的所有数据发送到我的控制器,但我不知道如何。

在我的控制器中

def add_group_vk
    params[:vk_groups].each do |item|
      if VkEntry.not_exists?(item) == true
        VkEntry.create!(
           :git => item
          )
      end
    end
    redirect_to vk_entries_url
  end

我想要这样的东西

def add_group_vk
    params[:vk_groups].each do |item|
      if VkEntry.not_exists?(item) == true
        VkEntry.create!(
           :git => item[:gid],
           :name=> item[:name],
           :ser=> item[:ser],
           :photo=> item[:photo]
          )
      end
    end
    redirect_to vk_entries_url
  end
4

2 回答 2

1

首先,我假设您的上面生成的复选框名称如下:

vk_groups[100], vk_groups[101],...

您真正可以提取的只是一个 id 列表,它们在哈希键中,值并不重要。

params[:vk_groups] 将产生一个哈希,像这样迭代哈希

def add_group_vk
  params[:vk_groups].each do |key,val|
  if VkEntry.not_exists?(key) == true
    VkEntry.create!(
       :git => key,
       :name=> item[:name],
       :ser=> item[:ser],
       :photo=> item[:photo]
      )
  end
end
redirect_to vk_entries_url

结尾

于 2013-04-06T21:27:33.403 回答
0

结果我做了:

def add_group_vk
    params[:vk_groups].each do |key,val|  

      item = eval val

      if VkEntry.not_exists?(key) == true

        VkEntry.create!(
            :gid          => key,
            :name         => item['name'],
            :screen_name  => item['screen_name'],
            :is_closed    => item['is_closed'],
            :is_admin     => item['is_admin'],
            :is_member    => item['is_member'],
            :type_vk      => item['type_vk'],
            :photo        => item['photo'],
            :photo_medium => item['photo_medium'],
            :photo_big    => item['photo_big']
          )
      end
      end
     redirect_to vk_entries_url
  end

在视图中

p= check_box_tag "vk_groups[#{item['gid']}]", item
于 2013-04-07T17:01:27.383 回答