0
我刚开此错误:轨测试rspec的水豚的ActionController :: ParameterMissing:参数是丢失或为空值:项目
Failure/Error: click_link 'New Project'
ActionController::ParameterMissing:
param is missing or the value is empty: project
# ./app/controllers/projects_controller.rb:31:in `project_params'
# ./app/controllers/projects_controller.rb:6:in `new'
# ./spec/features/creating_projects_spec.rb:5:in `block (2 levels) in <top (required)>'
我不知道为什么,所以我可能失去了一些东西:
Projects_controller.rb
class ProjectsController < ApplicationController
def index
end
def new
@project = Project.new(project_params)
@project.save
end
def create
@project = Project.new(project_params)
if @project.save
flash[:notice] = "Project has been created."
redirect_to @project
else
flash[:alert] = "Project has not been created."
render 'new'
end
end
def show
@project = Project.find(params[:id])
endjava 8 release date
private
def project_params
params.require(:project).permit(:name, :description)
end
end
New.html.erb
<h2>Creating Projects</h2>
<%= form_for(@project) do |f| %>
<% if @project.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@project.errors.count, "error") %>
Project has not been created.:</h2>
<ul>
<% @project.errors.full_message.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= f.label :name , "Name" %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :description, "Description" %><br />
<%= f.text_field :description %>
</p>
<%= f.submit %>
<% end %>
Creating_projects_spec.rb
require 'spec_helper'
feature 'Creating Projects' do
before do
visit '/'
click_link 'New Project'
end
scenario "can create a project" do
fill_in 'Name', with: 'TextMate 2'
fill_in 'Description', with: 'A text-editor for OS X'
click_button 'Create Project'
expect(page).to have_content('Project has been created.')
project = Project.where(name: "TextMate 2").first
expect(page.current_url).to eql(project_url(project))
title = "TextMate 2 - Projects - Ticketee"
expect(page).to have_title(title)
end
scenario "can not create a project without a name" do
click_button 'Create Project'
expect(page).to have_content("Project has not been created.")
expect(page).to have_content("Name can't be blank")
end
end
这是我第二次做同样的事情。我第一次通过它,但不记得我是如何和这一次卡住了。 :(
是的,你是对的,但你可以帮我下一个太(故障/错误:click_button“创建项目” 的ActionView: :模板::错误: 错误的参数数量(0表示2) #./app/views/projects/new.html.erb:10:in'block in _app_views_projects_new_html_erb__1587587786504212903_69884042952300' #./app/views/projects/ new.html.erb:3:in'_app_views_projects_new_html_erb__1587587786504212903_69884042952300' #./app/controllers/projects_con troller.rb:18:'create' #./spec/features/creating_projects_spec.rb:18:in') –
@KristjanTampere'<%@ project.errors .full_message.each do | msg | %>'应该是<%@ project.errors.full_messages.each do | msg | %>' – Pavan
非常感谢:) –