Rails表单文件上传新手问题

时间:2013-03-31 14:39:58

标签: ruby-on-rails forms ruby-on-rails-4

我在检索文件上传信息时遇到问题。我刚开始学习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”输出),从不调用照片方法。 那是为什么?

当我看着控制台时,我也看到了让我担心的这条线:

Unpermitted parameters: photo

这是什么意思?

1 个答案:

答案 0 :(得分: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