2014-05-15 2 views
0

무슨 일이 일어나고 있는지 확실하지 않지만 나는 그것이 초보자이기 때문에 긍정적입니다. 이것은 쉬운 대답입니다.간단한 형태와 반환 된 매개 변수

따라서 간단한 양식을 사용하여 내 캠페인 모델과의 관계가있는 새 메시지를 만듭니다. 문제는 매개 변수에서 campaign_id가 다시 표시되는 것을 볼 수 있지만 사용할 수없는 것입니다. 나는 일련의 검사를하고 있으며 언제나 나는 아무것도 얻지 못한다. 여기

내 코드 ...

messages_controller.rb입니다

class MessagesController < ApplicationController 

    def index 
    @messages = Message.all 
    end 

    def new 
    @message = Message.new 
    end 

    def create 

    @id = params[:campaign_id] 

    @campaign = Campaign.find_by id: params[:campaign_id]  
    end 

    private 
    def message_params 
    params.require(:message).permit(:campaign_id, :text) 
    end 
end 

new.html.erb

<%= simple_form_for @message do |f| %> 
    <%= f.association :campaign, collection: Campaign.all, label_method: :client %> 
    <%= f.input :text %> 
    <%= f.button :submit %> 
<% end %> 

create.html.erb (내가 무슨 일이 일어나고 있는지 볼 수 있습니다)

<%= params.inspect %><br /> <br /> 
<%= @id.inspect %><br /> <br /> 
<%= @campaign.inspect %><br /> <br /> 

여기 =

{ "UTF8"=> "✓" "authenticity_token"=> "Qh75FhPN + JhDR59IlF376Ythgbk7jkgFrER0vunr/BU =" "메시지"=> { "CAMPAIGN_ID를"나는 검사에서 무엇을 얻을 > "1", "텍스트"=> "테스트"}, "커밋"=> "메시지 생성", "동작"=> "생성", "컨트롤러"=> "메시지"}

전무

전무

나를 보자 추가 정보가 필요한지 확인하십시오. 감사합니다!

답변

0

campaign_idmessage 안에 중첩됩니다. 당신은 당신은 paramsHashwithIndifferentAccess 그래서 당신의 campaign_id 먼저 messagehash를 입력해야 접근하는 것입니다 잘못 params에 액세스하는

params[:message][:campaign_id] 
+0

가아, 나는 총 newb 이었다는 것을 알았어! 고맙습니다! 타이머가 올라 오면 최선의 답을 선택하겠습니다. – Khundawg

0

처럼 접근해야한다.

params[:message][:campaign_id] 

또는

params['message']['campaign_id'] 

모두 일 것.

params[:message] 
#=>{"campaign_id"=>"1", "text"=>"Here is a test"} 
관련 문제