Итак, я пытаюсь получить мои новые/создаваемые действия, работающие с form_for для моего ресурса 'project', но форма создания в 'new.html.erb', похоже, кажется, что параметр 'version 'пустым, когда я представить его, даже если я устанавливаю его равным 1.Rails Validation Failed for Create Action
Проекты контроллер
def new
@project = current_user.projects.build if user_signed_in?
@project.version = 1
@project.unique_id = rand(1000000)
while(Project.find_by_unique_id(@project.unique_id) != nil)
@project.unique_id = rand(1000000)
end
end
def create
@project = current_user.projects.build(project_params)
if @project.save
flash[:success] = "Project created!"
redirect_to user_url(current_user.username)
else
render 'new'
end
end
private
def project_params
params.require(:project).permit(:description, :name, :media, :content_type, :file_size, :unique_id, :verison)
end
конец
new.html.erb
<%= form_for(@project, html: {multipart: true}) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div>
<%= f.label :name %>
<%= f.text_field :name, maxlength: 50, class: 'form-control' %>
</div>
<div>
<%= f.label :description %>
<%= f.text_area :description, placeholder: "What is it all about?", class: 'form-control' %>
</div>
<%= f.file_field :media, accept: 'image/jpeg,image/gif,image/png,audio/mpeg,audio/vnd.wave' %>
<%= f.hidden_field :version %>
<%= f.hidden_field :unique_id %>
<%= f.submit "Create Project", class: "btn btn-primary" %>
<% end %>
Модель проекта
class Project < ActiveRecord::Base
belongs_to :user
has_many :comments, dependent: :destroy
validates :user_id, presence: true
validates :name, presence: true, length: { maximum: 50 }
validates :unique_id, presence: true
validates :version, presence: true
end
Большое спасибо заранее!
Возможно, у вас есть сильные_параметры, отфильтровывающие ваш параметр версии. Можете ли вы показать нам функцию 'project_params' в вашем контроллере проектов? – JTG
Хммм. Я добавил их! – Ben
oh ничего себе. Я просто заметил опечатку в сильных параметрах ... Это была проблема. Благодаря! – Ben