2016-10-05 36 views
0

我有一個控制器動作導軌`button_to`嵌套PARAMS不正確格式化

def create 
    @subject_decision = SubjectDecision.new(subject_decision_params) 

    respond_to do |format| 
     if @subject_decision.save 
     format.html { redirect_to @subject_decision, notice: 'Subject decision was successfully created.' } 
     format.json { render :show, status: :created, location: @subject_decision } 
     else 
     format.html { render :new } 
     format.json { render json: @subject_decision.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

帶私人方法:

def subject_decision_params 
    params.require(:subject_decision).permit(:decision_block_id, :choice_value, :timeline_id, :practice) 
end 

和在像視圖button_to

<%= button_to "Choice A", timeline_subject_decisions_path(timeline_id: @timeline.id), method: :post, params: 
    { subject_decision: 
     { 
      decision_block_id: @db.id, 
      choice_value: 'a', 
      timeline_id: @timeline.id, 
      practice: true, 
     } 
    } 
%> 

但是,當我點擊按鈕,我得到以下軌錯誤:

undefined method `permit' for "choice_value=a&decision_block_id=&practice=true&timeline_id=1":String 

爲什麼我不能提交表格(button_to)這樣的任何線索?

+1

這似乎表明,嵌套的哈希值還沒有工作...但你可以僞造它了例如'「subject_decision [decision_block_id」 => @Db .id等 - 即使它有點難看https://groups.google.com/forum/#!topic/rubyonrails-core/otqJ-ClTyFk –

+1

@TarynEast這個工作!謝謝。 – Shawnzam

回答

1

您可以格式化你的button_to作爲

<%= button_to "Choice A", timeline_subject_decisions_path(timeline_id: @timeline.id), method: :post, params: 
    { 
     'subject_decision[decision_block_id]' => @db.id, 
     'subject_decision[choice_value]' => 'a', 
     'subject_decision[timeline_id]' => @timeline.id, 
     'subject_decision[practice]' => true, 
    } 
%>