0

我在检索文件上传信息时遇到问题。我刚开始学习Rails。

我正在使用 ruby​​ 2.0.0p0 和 Rails 4.0.0.beta1

这是我的表格:

<%= form_for(@person, :html => { :multipart => true }) do |f| %>
<div class="field">
  <%= f.label :photo %><br />
  <%= f.file_field :photo %>
</div>
<div class="actions">
  <%= f.submit %>
</div>
<% end %>

在我的 person.rb 模型中:

def photo=(file_data)
logger.debug("PHOTO")
logger.debug(file_data)
logger.debug("END OUTPUT PHOTO")
unless file_data.blank?
  @file_data = file_data
  self.extension = file_data.original_filename.split('.').last.downcase
end
end

我可以在控制台中看到没有任何反应(没有“PHOTO”输出),永远不会调用 photo 方法。这是为什么?

当我查看控制台时,我还看到了让我担心的这一行:

Unpermitted parameters: photo

这意味着什么?

4

1 回答 1

3

在您正在处理的控制器中params,您需要使用.permit来列出允许表单发布的属性:

@person = Person.new(params.require(:person).permit(:photo))

或者,如果您使用 Rails 的脚手架生成器,您可能有一个person_params需要添加:photo属性的方法:

def person_params
  params.require(:person).permit(:photo, :name, etc...)
end
于 2013-03-31T14:45:06.553 回答