неопределенный метод `bson_type' для #‹ActionDispatch::Http::UploadedFile:0x007f9450dbea70›

Я работаю над версией rails 4. Я использую MongoDb в качестве базы данных для своего проекта. Я хочу выполнить действие загрузки, для этого я использую «камень скрепки». Я получаю вышеуказанную ошибку. На самом деле ошибка в контроллере кандидатов NoMethodError в CandidatesController#create_image. Пожалуйста, помогите мне решить эту проблему.

Если есть какой-либо другой способ загрузки, совместимый с монгоидом, пожалуйста, помогите мне найти решение.

Это мои действия контроллера кандидатов:

def profile
  @candidate = Candidate.find(params[:id])
  @image = Image.new
end

def create_image
  @candidate = Candidate.find(params[:id])
  @image = Image.new(new_image)
  @user = current_user
  if @image.save
    redirect_to profile_user_candidate_path(@user.id.to_s, @candidate.id.to_s)
  end
end
private
  def new_image
    params.require(:image).permit(:logo, :candidate_id)
  end

Это мой контроллер изображений

class ImagesController < ApplicationController
  def index
    @images = Images.all
  end

  def new
    @image = Image.new
  end

  def show
    @id = params[:id]
    @image = Image.find(@id)
  end 

  def create
    @image = Image.new(params[:image])
    if @image.save
      redirect_to :action => :show, :id => @image.id
    end
  end

  private
    def image
      params.require(:image).permit
    end
end

person user3114171    schedule 03.03.2014    source источник
comment
Можете ли вы предоставить соответствующий код?   -  person xlembouras    schedule 03.03.2014
comment
Похоже, вы используете идентификатор объекта модели в коде. Поэтому всякий раз, когда вы используете идентификатор, сделайте его строкой. как @user.id.to_s   -  person Bachan Smruty    schedule 03.03.2014
comment
@Bachan Smruty: я внес изменения в соответствии с вашим предложением, но до сих пор никаких изменений.   -  person user3114171    schedule 03.03.2014
comment
можете ли вы поделиться кодом для этого раздела, который будет проще для нас.   -  person Bachan Smruty    schedule 03.03.2014


Ответы (2)


Вы пытались использовать mongoid-paperclip?

Если вы хотите использовать mongodb и скрепку вместе, возможно, использование mongoid-paperclip решит все ваши проблемы.

Другие способы помочь нам ответить

  • Непонятно, как называется контроллер. Пожалуйста, добавьте весь класс, чтобы имена были понятны.
  • Непонятно, на какой строке у вас ошибка. Вы должны быть в состоянии сказать нам это.
  • Всегда будет понятнее, если вы вставите сюда все сообщение об ошибке. Даже немного трассировки стека.
  • Расскажите нам, что пользователь пытается сделать, когда вы получаете сообщение об ошибке.
  • Также может быть полезно сообщить нам свои маршруты.
person Spundun    schedule 02.04.2014
comment
У меня уже есть решение для моей проблемы. Эта ошибка возникла из-за отсутствия файла has_attached_file.rb в инициализаторах. Я использовал драгоценный камень монгоидной скрепки. - person user3114171; 03.04.2014

Возможно, сначала не были разрешены параметры. Вы должны сначала сделать new_params = params.permit!.to_h, а затем использовать это.

А еще лучше, разрешайте только то, что вам нужно.

person adrianthedev    schedule 05.09.2018