解释当我点击新的岗位,并试图挽救一个新的职位它给我的错误,然后我去控制器:获得“参数丢失或为空值:后”下面
private
def posts_params
params.require(:post).permit(:title, :description)
end
并将'require(:post)'改为'require(:posts'),然后我工作 但我尝试编辑刚刚创建的新帖子,当我点击保存时,它给了我同样的错误,然后我只是改变它回到'必需(:后)“,它的工作原理,为什么发生这种情况?它就像一个循环,如果一个工程,另一个不工作,我必须改变这一件事
控制器:
class PostsController < ApplicationController
def index
@posts = Post.all
end
def edit
@posts = Post.find(params[:id])
end
def update
@posts = Post.find(params[:id])
if @posts.update(posts_params)
redirect_to @posts
else
render 'edit'
end
end
def new
@posts = Post.new
end
def create
@posts = Post.new(posts_params)
if @posts.save
redirect_to @posts
else
render 'new'
end
end
def show
@posts = Post.find(params[:id])
end
private
def posts_params
params.require(:post).permit(:title, :description)
end
end
视图编辑:
<h1>Editing post</h1>
<%= form_for(@posts) do |f| %>
<% if @posts.errors.any? %>
<div id="error_explanation">
<h2>
<%= pluralize(@posts.errors.count, "error") %> prohibited
this post from being saved:
</h2>
<ul>
<% @posts.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %><br>
<%= f.text_area :description %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
<%= link_to 'Back', posts_path %>
图新:
<h1>New Article</h1>
<%= form_for :posts, url: posts_path do |f| %>
<% if @posts.errors.any? %>
<div id="error_explanation">
<h2>
<%= pluralize(@posts.errors.count, "error") %> prohibited
this post from being saved:
</h2>
<ul>
<% @posts.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %><br>
<%= f.text_area :description %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
<%= link_to 'Back', posts_path %>
可有人指出这个问题了呢?
谢谢,这解决了它,并感谢解释,所以我可以理解这是什么造成的,我该怎么办才能解决它,所以我可以在未来付出更多的关注,很好的答案 – GaoVN