2014-12-02 1 views
1

나는 할 수있는 앱의 '리뷰'섹션에 activeadmin을 설치하여 잘 작동하므로 내 비즈니스의 다양한 위치에 개별 리뷰를 추가 할 수 있습니다. 동일한 설정을 추가하려고했지만 리뷰가 아닌 BusinessReviews 모델을 사용하려고했습니다. (따라서 비즈니스 리뷰를 추가 할 수있게되었습니다)Active Admin에 갑작스러운 방법 오류가 있습니까?

활성 관리자 (로그인하고 '비즈니스'에 액세스 할 때까지 모든 것이 잘 작동합니다. 나는 시도하고 실제로 비즈니스 리뷰를 추가 할 때까지 리뷰 '패널은 괜찮 내가 다음 오류 얻을 :.

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 
을 내 스키마의

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 

라우트가 너무가 확인 될 것으로 보인다 다음과 같이 16,

을 my_app/관리/business_review.rb은?

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 

난 그냥 (그것에 추가 된 haveing하지 BUSINESS_에서 떨어져) 내가 완벽하게 작동을 설정하고 동일 리뷰를 하나로하지 않습니다.

답변

1

는 스키마에 따르면이 더 business_profile_image 없지만 단지 profile_image :

t.string "profile_image" 

그러니 열 이름을 바꾸거나 business_profile_image 대신 profile_image를 사용합니다.