2016-09-23 4 views
0

생성 된 스캐 폴드가있는 Ruby on Rails 애플리케이션이 있습니다. 이제 그 중 하나에서 초기에 계획되지 않은 매개 변수를 추가해야합니다.Rails scaffold 매개 변수가 허용되지 않습니다.

상황에는 두 개의 개체 (차단 및 키워드)가 있습니다. 그들 사이의 관계는 has_and_belongs_to_many입니다. 따라서 많은 키워드를 여러 블록과 연관시킬 수 있으며 그 반대도 마찬가지입니다. 생성 중에 개체 블록에 키워드를 추가하는 옵션을 추가하고 싶습니다. 나뿐만 아니라 컨트롤러에 매개 변수를 추가

<div class="field"> 
    <%= f.label :keywords %><br> 
    <%= f.collection_select(:keywords, @keywords.order(:name), :id, :name, {include_blank: true}, {:multiple => true}) %> 
    </div> 

:

def block_params 
    params.require(:block).permit(:name, :title, :description, :price, :instagram, :image, :main, :action, :keywords, :block_type_id, :module_keyword_id, :playlist_id) 
end 

그럼에도 불구하고 나는 로그

Unpermitted parameter: keywords 
에이 메시지가

은 내가 /views/blocks/_form.html.erb 파일에 다음 코드를 추가

키워드는 블록에 추가되지 않습니다. 내가 무엇이 누락 되었습니까?

def block_params 
    params.require(:block).permit(:name, :title, :description, :price, :instagram, :image, :main, :action, :block_type_id, :module_keyword_id, :playlist_id, :keywords, keywords: []) 
end 

참고 : 매개 변수가 배열 인 경우

답변

0

, 당신이 가진 배열로 허용해야 "키워드 : []" "키워드"키도 나는 또한 남아 있습니다 빈 값을 보낼 때 param을 허용합니다 (예를 들어 모든 키워드를 제거하는 경우).

+0

안녕하세요! 이 오류가 발생합니다 : .../blocks_controller.rb : 92 : 구문 오류, 예기치 않은 ',', 예상 => ..., 키워드 : [], : block_type_id, : module_keyword_id, : playlis .... ..^ – ste

+0

내 잘못, 당신은 "키워드 : []"끝에 넣어해야, 내 대답을 편집합니다. – arieljuod

관련 문제