2014-07-26 5 views
0

this rails guide에 따르면이 양식이 제출되면 params의 올바른 구문은 무엇입니까?

"이름이 폼 데이터와 함께 전달 될 당신이 당신의 템플릿의 HTML 값과 연관 nameparams를, 키를 허용하고, 만들 것 예를 들어, 양식에 < % = text_field_tag ​​(: query) %>가 포함되어 있으면이 필드의 값을 가져올 수 있습니다. params [: query]가있는 컨트롤러에서 "

그러나 내가 제출 한 매개 변수에 액세스하려고하면 다음 오류가 발생합니다.이름하지만 난 그냥 다른 사람들을 전달하기 전에 지금 취급이 하나를 얻기 위해 노력하고 있어요 :

enter image description here

나는 거기에 다른 PARAMS이 외에 것으로 알고 있습니다. 나는이 앱을 기초로 연습하고있다.

내 매개 변수가 내 URL로 전달되는 이유는 무엇입니까? POST 요청으로 제출해서 강력한 매개 변수를 사용할 수 없으면 양식입니까? 내가 너무 많은 문제를 겪고있는 이유는 강한 매개 변수에 익숙해 져서이 문법에 익숙하지 않기 때문이라고 생각합니다. 어떤 도움을 주셔서 감사합니다, 감사합니다!

여기 내 코드입니다 :

컨트롤러 :

class OrdersController < ApplicationController 
    def create 
    Order.create(params[:name]) 
    end 
end 

보기

<h1> Input information </h1> 
<%= form_tag("/order",method: "get") %> 
<%= label_tag(:name, "Enter name") %> 
<%= text_field_tag(:name) %> 
<%= label_tag(:email, "enter email") %> 
<%= text_field_tag(:email) %> 
<h2> Select color </h2> 
<%= label_tag(:red,"red") %> 
<%= check_box_tag(:red) %> 
<%= label_tag(:green,"green") %> 
<%= check_box_tag(:green) %> 
<%= label_tag(:indigo,"Indigo") %> 
<%= check_box_tag(:indigo) %> 
<%= submit_tag("submit") %> 

답변

2

당신은 create에 해시 인수를 제공해야합니다. name을 설정하는 것을 Order은 어떻게 알 수 있습니까? 당신은 기본적으로이 일을하고 있습니다 :

Order.create('phoot')

당신은 phoot이 무엇인지 지정해야합니다

Order.create(name: params[:name]) 
# ends up being Order.create(name: 'phoot') 
+0

감사 @logan. 하지만 POST 대신에 이러한 매개 변수가 URL을 통해 전달되는 이유는 무엇입니까? –

+1

'form_tag ("/ order", method : "get")'이 문제입니다. POST 대신 GET을 통해 게시되도록 구체적으로 요구합니다. – tangrs

관련 문제