簡體   English   中英

Active Admin中突然沒有方法錯誤?

[英]Sudden no method error in Active Admin?

我已經安裝了activeadmin,並且可以在may應用程序的“評論”部分中正常工作,從而可以將個人評論添加到業務所基於的各個位置。 我嘗試添加相同的設置,但是使用的是BusinessReviews模型而不是Reviews(因此,我可以在相同的基礎上添加業務評論)

一切正常,直到我進入活動管理員狀態(登錄並訪問“業務評論”面板就可以了,直到我嘗試實際添加業務評論為止。然后出現錯誤:

NoMethodError in Admin::BusinessReviews#new

undefined method `business_profile_image' for #<BusinessReview:0x007f893fe853d0>

我的模型如下:

    class BusinessReview < ActiveRecord::Base
belongs_to :location
  has_many :images, :as => :referrer
  accepts_nested_attributes_for :images, :allow_destroy => true
  def thumbnail
    if self.images.count > 0
      self.images.last.avatar(:thumb)
    else
      nil
    end
  end
end

my_app / admin / business_review.rb如下:

    ActiveAdmin.register BusinessReview do
  index do
    column :business_reviewer_name
    column :business_review_content
    column :business_reviewer_address
    column :rating
    column :location do |business_review|
      business_review.location.name
    end
    column :business_profile_image do |business_review|
      image_tag(business_review.business_profile_image) if business_review.business_profile_image.present? 
    end
    actions
  end

  show do |business_review|
    attributes_table do
      row :business_reviewer_name
      row :business_profile_image
      row :business_review_content
      row :business_reviewer_address
      row :rating
      row :location do
        business_review.location.name
      end
    end
    panel "Images" do
      table_for business_review.images do
        column {|img| img.currently_used }
        column {|img| image_tag(img.avatar.url(:large)) }
      end
    end
    active_admin_comments
  end

  permit_params [:id, :business_reviewer_name, :business_profile_image, :business_review_content, :business_reviewer_address, :rating, :location_id], images_attributes: [:id,:_destroy,:avatar,:usage_type, :currently_used]

  form do |f|
    f.inputs 'Details' do
      f.input :business_reviewer_name
      f.input :business_profile_image
      f.input :business_review_content
      f.input :business_reviewer_address
      f.input :rating
      f.input :location
    end

    f.inputs "images" do
      f.has_many :images, :allow_destroy => true, :heading => 'Images', :new_record => true do |imgf|
        imgf.input :currently_used
        imgf.inputs "Attachment", :multipart => true do
          imgf.input :avatar, :as => :file, :hint => imgf.object.avatar? \
            ? imgf.template.image_tag(imgf.object.avatar.url(:large))
          : imgf.template.content_tag(:span, "no image yet")
        end
      end
    end
    f.actions
  end
end

我的架構的相關部分:

create_table "business_reviews", force: true do |t|
    t.text     "business_reviewer_content"
    t.string   "business_reviewer_name"
    t.string   "business_reviewer_address"
    t.float    "rating"
    t.string   "profile_image"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

路線似乎也可以嗎?

batch_action_admin_business_reviews POST       /admin/business_reviews/batch_action(.:format)    admin/business_reviews#batch
_action
             admin_business_reviews GET        /admin/business_reviews(.:format)                 admin/business_reviews#index
                                    POST       /admin/business_reviews(.:format)                 admin/business_reviews#creat
e
          new_admin_business_review GET        /admin/business_reviews/new(.:format)             admin/business_reviews#new
         edit_admin_business_review GET        /admin/business_reviews/:id/edit(.:format)        admin/business_reviews#edit
              admin_business_review GET        /admin/business_reviews/:id(.:format)             admin/business_reviews#show
                                    PATCH      /admin/business_reviews/:id(.:format)             admin/business_reviews#updat
e
                                    PUT        /admin/business_reviews/:id(.:format)             admin/business_reviews#updat
e
                                    DELETE     /admin/business_reviews/:id(.:format)             admin/business_reviews#destr
oy

我只是沒有得到它,因為我設置的評論非常完美並且完全相同(除了沒有添加business_之外)。

根據您的架構,沒有business_profile_image,只有profile_image:

t.string   "profile_image"

因此,要么重命名列,要么使用profile_image而不是business_profile_image。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM