2014-01-28 3 views
1

Когда я попытался создать действие, я ActionController :: ParameterMissing в WelcomeController # create param не найден: post для приветственного контроллера. Почему это происходит?Параметр Отсутствует Ruby on Rails

Вот контроллер:

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

Привет, пожалуйста, отредактируйте ваше сообщение, чтобы правильно отформатировать код, используйте ctrl + k –

+0

Вы используете form_for или form_tag на ваш взгляд? Можете ли вы отправить свой код формы? –

ответ

0
ActionController::ParameterMissing in WelcomeController#create param not found: post 

Это означает, что вы не пропуская пост объект в метод post_params, как это требуется объект post.

params.*require(:post)*.permit(:text1,:text2) 

Пожалуйста, проверьте свои формы на странице просмотра.

0

Ошибка в том, что вы создаете действие с помощью строки render text: params[:post].inspect. Попробуйте использовать вместо этого:

render text: post_params.inspect

Надеется, что это помогает!

Смежные вопросы