2013-08-05 4 views
0

매개 변수 해시를 컨트롤러에 전달하지 않고 일부보기에 문제가 있습니다. 나는 데이터베이스에 새 항목을 추가하는 뷰에 정의 된 형태를하고 난 오류가 점점 오전 : 여기 Ruby on Rails 4 - 컨트롤러에 매개 변수 해시를 전달하지 않는 양식 도우미

ActionController::ParameterMissing: 
    param not found: item 

이 작업을 처리하는 형태의 질문에 도우미 내 컨트롤러에 대한 내 코드 파일입니다을.

new.hmtl.erb

<%= form_for(@item) do |f| %> 
    <%= f.label :name %> 
    <%= f.text_field :name %> 

    <%= f.label :description %> 
    <%= f.text_field :description %> 

    <%= f.submit "Add", class:"btn btn-large btn-primary %> 
<% end %> 

내가 '다른 질문에서이 문제를 해결하는 방법에 대한 확고한 답을 아직했습니다

class ItemsController < ApplicationController 
    def new 
    @item = Item.create(set_params) 
    end 

    private 
    def set_params 
     params.require(:item).permit(:name, :description) 
    end 
    end 
end 

items_controller.rb 내가 본 것 같아.

+1

당신은'def create @item = Item.create (set_params) end를 가진 create 액션을 추가해야합니다. 새로운 액션은 def new @item = Item.new end가됩니다. –

답변

3

new 작업은 새 항목을 만들기 위해 양식을 렌더링하는 작업입니다. 이 작업이 렌더링되면 매개 변수는 비어 있습니다.

귀하의 create 조치는 귀하의 매개 변수가 채워지는 양식을 처리하는 행위입니다.

+0

흠, 전에는 그랬지만 생각했습니다. 나는 어딘가에 섞여 있었다. 어쨌든, 고쳐 줘서 고마워! – Excor