解釋當我點擊新的崗位,並試圖挽救一個新的職位它給我的錯誤,然後我去控制器:獲得「參數丟失或爲空值:後」下面
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