我在检索文件上传信息时遇到问题。我刚开始学习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
这是什么意思?
答案 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