当我尝试创建动作时,我在WelcomeController中创建了 ActionController :: ParameterMissing 未找到参数:发布表示欢迎控制器。为什么会发生这种情况?
这是控制器:
class WelcomeController < ApplicationController
def index1
@data = params[:text1]
@data1 = params[:text2]
end
def new
end
def create
render text: params[:post].inspect
@post = Welcome.new(post_params)
@post.save
redirect_to @post
end
private
def post_params
params.require(:post).permit(:text1,:text2)
end
def show
@post = Welcome.find(params[:id])
end
欢迎/ index.html.erb
enter code here
<%= form_tag('/welcome',method: :post,action: :show) do %>
<p>
<%= label_tag(:text1, "Enter Username :") %>
<%= text_field_tag(:text1, nil, placeholder: 'Enter UserName') %>
</p>
<p>
<%= label_tag(:text2, "Enter Password :") %>
<%= text_field_tag(:text2, nil, placeholder: 'Enter Password') %>
</p>
<p>
<%= submit_tag("Submit")%>
</p>
<% end %>
答案 0 :(得分:0)
ActionController::ParameterMissing in WelcomeController#create param not found: post
这意味着您没有将post对象传递给post_params方法,因为它需要post对象。
params.*require(:post)*.permit(:text1,:text2)
请在视图页上查看您的表单。
答案 1 :(得分:0)
错误在于您使用行render text: params[:post].inspect
创建操作。请尝试使用此代码:
render text: post_params.inspect
希望这有帮助!