Ruby on rails 不允许的参数:<;型号名称>;嵌套表单属性(回形针)Rails 4
我搜索了所有类似的帖子,但无法找出我的代码有什么问题。Ruby on rails 不允许的参数:<;型号名称>;嵌套表单属性(回形针)Rails 4,ruby-on-rails,ruby-on-rails-4,paperclip,nested-forms,nested-attributes,Ruby On Rails,Ruby On Rails 4,Paperclip,Nested Forms,Nested Attributes,我搜索了所有类似的帖子,但无法找出我的代码有什么问题。 错误:不允许参数:照片。 我有一个用户模型,其中有许多项目,然后项目有许多照片。 下面是代码: 型号: 结束更改您的表格,我认为这将解决您的许多问题!成功了!:) class Project < ActiveRecord::Base belongs_to :user has_many :photos, :dependent => :destroy accepts_nested_attributes_for :photos, :
错误:不允许参数:照片。
我有一个用户模型,其中有许多项目,然后项目有许多照片。 下面是代码:
型号:
结束更改您的表格,我认为这将解决您的许多问题!成功了!:)
class Project < ActiveRecord::Base
belongs_to :user
has_many :photos, :dependent => :destroy
accepts_nested_attributes_for :photos, :reject_if => lambda { |a| a[:photo].blank? }, :allow_destroy => true
end
class Photo < ActiveRecord::Base
belongs_to :project
has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :photo, :content_type => /\Aimage\/.*\Z/
end
class ProjectsController < ApplicationController
before_filter :authenticate_user!
layout 'innerlayout'
before_action :find_user
def new
@project = Project.new({:user_id => @user.id})
@project.photos.build
end
def create
@project = Project.new(project_params)
if @project.save
redirect_to(user_path(@user.id))
else
render(new_user_project_path(@user.id))
end
end
...
def project_params
params.require(:project).permit(:user_id,:title,:description, :photos_attributes => [:id, :photo])
end
<%= form_for(:project, :url => user_projects_path(@user.id)) do |f| %>
<%= render(:partial =>"project_form", :locals => {:f => f}) %>
<% end %>
<%= f.hidden_field :user_id , :value=>@user.id %>
<%= f.label :title, 'Title'%>
<%= f.text_field :title%>
<%= f.label :description, 'Description' %>
<%= f.text_field :description%>
<%= f.fields_for :photos do |builder| %>
<%= builder.label :photo, "Add Photo" %>
<%= builder.file_field :photo %>
<% end %>
<%= submit_tag "Add", :class => "btn btn-primary" ,:value => nil %>
create_table "photos", force: :cascade do |t|
t.integer "project_id"
t.string "photo_file_name"
t.string "photo_content_type"
t.integer "photo_file_size"
t.datetime "photo_updated_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false