2017-09-28 6 views
1

마켓은 이름, created_at 및 updated_at의 세 열이있는 마켓 테이블이있는 모델입니다. 텍스트 필드를 사용하여 시장을 창출 할 수있는 간단한 관리 시장 지수보기를 작성하려고합니다. 난 무엇을금지 된 속성 오류

@market = Market.new(params[:market]) 

어떤 도움 : 나는 내가 market_params 적절하게 설정했지만, 분명히 내가 뭔가를 잘못하고 있어요 만들 내가 MarketsController 번호에 금지 AttribuesError를 얻을 수 있기 때문에, 그것은이 라인을 강조 생각 잘못하고 있으면 크게 감사하겠습니다! 여기

내 시장 컨트롤러 :

여기
class MarketsController < ApplicationController 
    def index 
     @markets = Market.all 
     @market = Market.new 
    end 

    def create 
    @market = Market.new(params[:market]) 
    if @market.save 
     flash[:success] = "Market Created!" 
     render 'markets/index' 
    else 
     render 'markets/index' 
    end 
end 


private 
def market_params 
    params.require(:market).permit(:name) 
end 
end 

내 양식은 다음과 같습니다

<%= form_for(@market) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <div class="field"> 
    <%= f.text_area :name, placeholder: "Enter Market name here" %> 
    </div> 
    <%= f.submit "Submit", class: "btn btn-primary" %> 
    <% end %> 

답변

2

이유는 무엇입니까? ForbittionAttributrror

레일즈는 허용 목록 매개 변수없이 직접 데이터베이스를 만들거나 업데이트 할 수 없습니다. market_params라는 메서드를 작성했지만 사용하지는 않습니다. 새 메서드에서 params [: market]을 직접 사용하고 있습니다.

변경이 라인

@market = Market.new (PARAMS [: 시장])

@market = Market.new (market_params)에

2

지금 바로 만들려고합니다. 시장은 params[:market]입니다. strong_parameters을 사용한다고 가정하면 대신 다음을 수행해야합니다.

@market = Market.new(market_params)