Rails 4 Ruby 2.0 Windows 8.1
在我看来,我有以下内容:
<%= f.file_field :uploaded_file, label: "Image" %>
在我的控制器中,我有以下内容:
def create
@agent = Agent.new(agent_params)
........
end
def agent_params
params.require(:agent).permit(:uploaded_file, :first, :last, :email)
end
当我尝试创建代理时,收到以下错误消息:
unknown attribute: uploaded_file
它指向这行代码:
@agent = Agent.new(agent_params)
uploaded_file在允许的参数列表中,我可以在参数中看到它(查看日志文件)。有什么想法吗?
答案 0 :(得分:3)
当给定模型中不存在指定字段时,您将获得unknown attribute error
。
在您的情况下,uploaded_file
既不是agents
表中的字段,也不是attr_accessor :uploaded_file
模型中导致错误的虚拟属性(由Agent
定义)。< / p>
要解决此问题,您必须向uploaded_file
表添加名为agents
的字段,或在Agent
模型中添加虚拟属性attr_accessor :uploaded_file
。
注意:强> 仅供参考,请查看CarrierWave和Paperclip宝石,为ActiveRecord提供简单的文件附件管理。