POST를 통해 다른 웹 사이트에서 보낸 매개 변수를 처리하도록 컨트롤러를 구성하려고합니다. 내 기록에 따르면 다음과 같은 매개 변수가 표시됩니다.레일스 컨트롤러에서 POST에서 중첩 된 JSON 데이터를 추출 할 수 없습니다.
{ "page_id"=> "8b62f4ac-8588-11e3-a094-12314000b04c", "page_name"=> "테스트 양식", "변형"=> "b", "page_url"=> "http://get.xxxxxxx.com/test-form", "data.json"=> "{\"이름 \ ": [Dave \"], \ "이메일 \": [\ "[email protected] \ "4447177265 \"], \ "ip_address \": [\ "64.114.175.126 \"], \ "time_submitted \": [\ "07:34 오전 UTC \"] ]} ","data.xml "=>"\ n \ n Dave \ n [email protected] \ n 2507177265 \ n 64.114.175.126 \ n 07:34 UTC \ n "}
처음에는 Rails가 params에서 JSON을 자동으로 구문 분석하므로 정상적인 방법으로 JSON에 액세스 할 수 있습니다. 저는 이렇게 등록 컨트롤러를 썼습니다 :
class Api::RegistrationsController < Devise::RegistrationsController
skip_before_filter :verify_authenticity_token
respond_to :json
def create
@user = User.new(user_params)
if @user.save
render json: @user.as_json(email: @user.email), status: 201
return
else
warden.custom_failure!
render json: @user.errors, status: 422
end
end
def user_params
params.require(:'data.json').permit(:email, :name, :phone, :comments, :residency, :qualification, :acknowledgement) if params.present?
end
end
그러나 전혀 작동하지 않습니다. 난 문자열에 대한 '허가'방법을 정의되지 않은 오류가 발생합니다. 그래서 분명히 JSON에 올바르게 액세스하지 못하고 있습니다. JSON이 오류를 던지고 있다는 이유로 이스케이프 처리가 가능합니까?
나는 인터넷 검색을하고 며칠 동안 IRC에 질문했지만 나는 그다지 멀리 있지 않습니다.
나는 컨트롤러에 올바른 형식의 JSON을 통과 할 수 있으며 내가 JSON 데이터와 새 사용자를 만들 수 있어야하기 때문에 내가 난처한 상황에 빠진거야
합니다 (필요 인수에 대한 변경과) 잘 작동합니다. 어떤 도움이라도 대단히 감사 할 것입니다. 나는 여기서 어떤 방향으로 나아갈 지조차 모른다.
만들기 감각을. 나는 그것을 시도 할 것이다. 감사 –