File Upload Fails with 'TypeError (can't cast ActiveModel::Name to string)' #409

This commit is contained in:
Karel Pičman 2015-07-20 09:30:55 +02:00
parent d2098c7aed
commit 58e6069255
6 changed files with 19 additions and 19 deletions

View File

@ -73,7 +73,7 @@ class DmsfController < ApplicationController
end
end
@dir_links = []
DmsfLink.where(:project_id => @project.id, :target_type => DmsfFolder.model_name).visible.each do |l|
DmsfLink.where(:project_id => @project.id, :target_type => DmsfFolder.model_name.name).visible.each do |l|
l.target_folder.custom_field_values.each do |v|
if v.custom_field_id == params[:custom_field_id].to_i
if v.custom_field.compare_values?(v.value, params[:custom_value])
@ -84,7 +84,7 @@ class DmsfController < ApplicationController
end
end
@file_links = []
DmsfLink.where(:project_id => @project.id, :target_type => DmsfFile.model_name).visible.each do |l|
DmsfLink.where(:project_id => @project.id, :target_type => DmsfFile.model_name.name).visible.each do |l|
r = l.target_file.last_revision if l.target_file
if r
r.custom_field_values.each do |v|
@ -157,8 +157,8 @@ class DmsfController < ApplicationController
@file_delete_allowed = User.current.allowed_to? :file_delete, @project
@subfolders = DmsfFolder.deleted.where(:project_id => @project.id)
@files = DmsfFile.deleted.where(:project_id => @project.id)
@dir_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFolder.model_name)
@file_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFile.model_name)
@dir_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFolder.model_name.name)
@file_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => DmsfFile.model_name.name)
@url_links = DmsfLink.deleted.where(:project_id => @project.id, :target_type => 'DmsfUrl')
end

View File

@ -105,13 +105,13 @@ class DmsfLinksController < ApplicationController
@dmsf_link.target_type = 'DmsfUrl'
elsif params[:dmsf_link][:target_file_id].present?
@dmsf_link.target_id = params[:dmsf_link][:target_file_id]
@dmsf_link.target_type = DmsfFile.model_name
@dmsf_link.target_type = DmsfFile.model_name.name
else
@dmsf_link.target_id = DmsfLinksHelper.is_a_number?(params[:dmsf_link][:target_folder_id]) ? params[:dmsf_link][:target_folder_id].to_i : nil
@dmsf_link.target_type = DmsfFolder.model_name
@dmsf_link.target_type = DmsfFolder.model_name.name
end
@dmsf_link.name = params[:dmsf_link][:name]
if @dmsf_link.save
flash[:notice] = l(:notice_successful_create)
redirect_to dmsf_folder_path(:id => @project.id, :folder_id => @dmsf_link.dmsf_folder_id)
@ -119,7 +119,7 @@ class DmsfLinksController < ApplicationController
@dmsf_file_id = params[:dmsf_link][:dmsf_file_id]
@type = params[:dmsf_link][:type]
@target_folder_id = params[:dmsf_link][:target_folder_id].to_i if DmsfLinksHelper.is_a_number?(params[:dmsf_link][:target_folder_id])
@target_file_id = @dmsf_link.target_id if @dmsf_link.target_type == DmsfFile.model_name
@target_file_id = @dmsf_link.target_id if @dmsf_link.target_type == DmsfFile.model_name.name
render :action => 'new'
end
else
@ -133,10 +133,10 @@ class DmsfLinksController < ApplicationController
@dmsf_link.target_type = 'DmsfUrl'
elsif params[:dmsf_link][:dmsf_file_id].present?
@dmsf_link.target_id = params[:dmsf_link][:dmsf_file_id]
@dmsf_link.target_type = DmsfFile.model_name
@dmsf_link.target_type = DmsfFile.model_name.name
else
@dmsf_link.target_id = params[:dmsf_link][:dmsf_folder_id]
@dmsf_link.target_type = DmsfFolder.model_name
@dmsf_link.target_type = DmsfFolder.model_name.name
end
@dmsf_link.name = params[:dmsf_link][:name]

View File

@ -42,7 +42,7 @@ class DmsfFile < ActiveRecord::Base
:dependent => :destroy
has_many :locks, -> { where(entity_type: 0).order("#{DmsfLock.table_name}.updated_at DESC") },
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
has_many :referenced_links, -> { where target_type: DmsfFile.model_name},
has_many :referenced_links, -> { where target_type: DmsfFile.model_name.name},
:class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy
accepts_nested_attributes_for :revisions, :locks, :referenced_links, :project
else
@ -54,7 +54,7 @@ class DmsfFile < ActiveRecord::Base
:conditions => {:entity_type => 0},
:dependent => :destroy
has_many :referenced_links, :class_name => 'DmsfLink', :foreign_key => 'target_id',
:conditions => {:target_type => DmsfFile.model_name}, :dependent => :destroy
:conditions => {:target_type => DmsfFile.model_name.name}, :dependent => :destroy
end
if (Rails::VERSION::MAJOR > 3)

View File

@ -51,7 +51,7 @@ class DmsfLink < ActiveRecord::Base
end
def target_folder_id
if self.target_type == DmsfFolder.model_name
if self.target_type == DmsfFolder.model_name.name
self.target_id
else
f = DmsfFile.find_by_id self.target_id
@ -64,7 +64,7 @@ class DmsfLink < ActiveRecord::Base
end
def target_file_id
self.target_id if self.target_type == DmsfFile.model_name
self.target_id if self.target_type == DmsfFile.model_name.name
end
def target_file
@ -87,7 +87,7 @@ class DmsfLink < ActiveRecord::Base
links = DmsfLink.where(
:project_id => project.id,
:dmsf_folder_id => folder ? folder.id : nil,
:target_type => DmsfFile.model_name.to_s).visible.all
:target_type => DmsfFile.model_name.name).visible.all
links.each do |link|
return link if link.target_file.name == filename
end
@ -95,7 +95,7 @@ class DmsfLink < ActiveRecord::Base
end
def path
if self.target_type == DmsfFile.model_name
if self.target_type == DmsfFile.model_name.name
path = self.target_file.dmsf_path.map { |element| element.is_a?(DmsfFile) ? element.name : element.title }.join('/') if self.target_file
else
path = self.target_folder ? self.target_folder.dmsf_path_str : ''

View File

@ -50,7 +50,7 @@ class DmsfFolderTest < RedmineDmsf::Test::UnitTest
@folder4.delete true
assert_nil DmsfFolder.find_by_id(@folder4.id)
# TODO: Doesn't work in Travis - a problem with bolean visiblity
#assert_equal 0, DmsfLink.where(:target_id => @folder4.id, :target_type => DmsfFolder.model_name).count
#assert_equal 0, DmsfLink.where(:target_id => @folder4.id, :target_type => DmsfFolder.model_name.name).count
end
end

View File

@ -50,7 +50,7 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest
folder_link = DmsfLink.new
folder_link.target_project_id = @project1.id
folder_link.target_id = @folder1.id
folder_link.target_type = DmsfFolder.model_name
folder_link.target_type = DmsfFolder.model_name.name
folder_link.name = 'folder1_link2'
folder_link.project_id = @project1.id
folder_link.created_at = DateTime.now()
@ -61,7 +61,7 @@ class DmsfLinksTest < RedmineDmsf::Test::UnitTest
file_link = DmsfLink.new
file_link.target_project_id = @project1.id
file_link.target_id = @file1.id
file_link.target_type = DmsfFile.model_name
file_link.target_type = DmsfFile.model_name.name
file_link.name = 'file1_link2'
file_link.project_id = @project1.id
file_link.created_at = DateTime.now()