ruby-on-rails - Carrierwave动态扩展_white_list

标签 ruby-on-rails ruby

我有两个模型(Document & DocumentType)。使用 carrierwave 我想根据它的 DocumentType(包含一系列可接受的文件扩展名)动态限制 Document 上允许的文件扩展名。问题是 extension_white_list 似乎在 DocumentType 与文档相关联之前被调用。想法、想法?

def create
  @document = Document.new document_params
end

最佳答案

在您的 uploader 中,您可以做任何您需要的事情,类、实例方法或固定数据。

def extension_white_list
  # Document.some_class_method
  # model.some_instance_method
  # fixed: %w(jpg jpeg gif png)
end

问题可能源于 Rails 分配参数的方式:您无法控制顺序。

在这种情况下,拆分行以获得您想要的顺序:

@document = Document.new document_params_without_file
@document.assign_attributes document_file_params
#or a mere @document.file_accessor = document_file_params

关于ruby-on-rails - Carrierwave动态扩展_white_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661639/

相关文章:

ruby-on-rails - 通过youtube_it gem 查询YouTube上的可嵌入视频

ruby-on-rails - 我如何强制 ActiveRecord 重新加载一个类?

ruby-on-rails - 在 Rails 应用程序的表中显示查询结果

c# - 我该如何排序这个列表?

ruby-on-rails - 重载 ActiveSupport 的默认 to_sentence 行为

ruby-on-rails - 在某些特殊情况下如何跳过事件记录验证?

ruby-on-rails - rails : read cookie set date

ruby-on-rails - 如何在 Rails 中干燥模型?

ruby - 使用 each 和 map 修改数组索引的范围

ruby - 无法使用 bundler 安装 gem