Ruby on rails Rails表单文件上载新手问题

Ruby on rails Rails表单文件上载新手问题,ruby-on-rails,forms,ruby-on-rails-4,Ruby On Rails,Forms,Ruby On Rails 4,检索文件上载信息时出现问题。我刚刚开始学习Rails 我正在使用ruby 2.0.0p0 和轨道4.0.0.1 这是我的表格: <%= form_for(@person, :html => { :multipart => true }) do |f| %> <div class="field"> <%= f.label :photo %><br /> <%= f.file_field :photo %> </d

检索文件上载信息时出现问题。我刚刚开始学习Rails

我正在使用ruby 2.0.0p0 和轨道4.0.0.1

这是我的表格:

<%= 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 %>
我可以在控制台中看到什么都没有发生(没有“PHOTO”输出),PHOTO方法从未被调用。 为什么呢

当我查看控制台时,我也看到了这句让我担心的话:

Unpermitted parameters: photo

这意味着什么?

在您的控制器中,您处理
参数时,需要使用
。允许
列出允许发布表单的属性:

@person = Person.new(params.require(:person).permit(:photo))
或者,如果使用Rails的脚手架生成器,您可能需要使用
person\u params
方法,在该方法中需要添加
:photo
属性:

def person_params
  params.require(:person).permit(:photo, :name, etc...)
end

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

@person = Person.new(params.require(:person).permit(:photo))
或者,如果使用Rails的脚手架生成器,您可能需要使用
person\u params
方法,在该方法中需要添加
:photo
属性:

def person_params
  params.require(:person).permit(:photo, :name, etc...)
end

如果您刚刚开始学习Rails,在正式发布之前,我不会使用Rails 4测试版。您遇到的确切问题可能不会发生在Rails 3.2中。您是对的。我想我在安装Rails时没有注意。如果您刚刚开始学习Rails,我将尝试切换回3(我的学习手册是针对Rails 3的),在正式发布之前,我不会使用Rails 4测试版。您遇到的确切问题可能不会发生在Rails 3.2中。您是对的。我想我在安装Rails时没有注意。我将尝试切换回3(无论如何,我的学习手册是针对Rails 3的)是的,找到了。这很有道理。谢谢,找到了。这很有道理。非常感谢。