Rails:活动管理员关联图像列

时间:2013-05-19 23:04:37

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 activeadmin

我是ruby on rails的新手,刚刚安装了主动管理员,并试图自定义

视图。

我有一个产品和图像表。每张图片都属于一种产品。

现在,我想在显示产品页面时显示包含相关图像的列。

目前只有image_url文本不起作用。后来我想做

将图片显示为50x50px。

我该怎么做? (图像模型:name:string image_url:text)

这就是我所做的:

ActiveAdmin.register Product do

index do
    column "Image" do |image|
        image.image_url
    end
    column :name
    column :preview_text
    column :full_text
    column :price, :sortable => :price do |product|
      div :class => "price" do
          number_to_currency product.price
     end
    end
 default_actions
 end
end

我不知道如何使用“do image”修复该部分。我是rails 2天exp的初学者..

似乎语法错误并抛出错误:

undefined method `image_url' for #<Product:0x00000101b5a458>

由于

2 个答案:

答案 0 :(得分:11)

您需要从图像对象image_url获取product.image.image_url

关于图像尺寸,您可以显示所需尺寸的图像,如此

column "Image" do |product|
  image_tag product.image.image_url, class: 'my_image_size'
end

的CSS

.my_image_size {
  width: 50px;
  height: 50px;
}

或者您可以使用CarrierWave等宝石来实际调整图像大小。

答案 1 :(得分:1)

column "Image" do |product|
  image_tag (product.image,width:100,height:80) 
end


references
image=it's belongs to your database column name
product=it creates new object for your image by activeadmin register class method.