参数缺少Ruby on Rails

时间:2014-01-28 04:13:45

标签: ruby-on-rails

当我尝试创建动作时,我在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 %>

2 个答案:

答案 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

希望这有帮助!