조인 테이블을 다른 두 테이블의 조인 테이블에 채우려 고합니다. 사용자 ID를 추가하는 것이 상대적으로 쉬운 일이지만 다른 ID는 제공하고 있습니다. 내가 create 메소드에서 발행한다.컨트롤러에서 create 메서드로 조인 테이블을 채우는 방법
UserItems 테이블에는 id가 user_id이고 item_id가 2 테이블 간의 링크로 구성되어있어 다 대다 관계가 가능합니다. 여기
는 a를 user_items_controller.rb의 방법뿐만 아니라def user_item_params
params.require(:user_item).permit(:item_id, :user_id)
end
@user_item.item = Item.find(params[:item_id])
나는 내가 잘못에 줄 생각되어이 줄의 코드
def create
@user_item = UserItem.new(user_item_params)
@user_item.user_id = current_user.id
@user_item.item = Item.find(params[:item_id])
if @user_item.save
redirect_to @user_item, notice: 'successfully created.'
else
render action: 'new'
end
end
user_item_params입니다 , 나는 테이블에 올바른 아이템 ID를 채워 넣을 것이라고 생각하지 않습니다.
테스트 구동 개발을 통해이 작업을 수행하고 있습니다. 현재 실패한 테스트는 사용자 또는 항목이 주어진 user_item에 대해 존재하지 않으면 404를 얻게됩니다. 이러한 항목을 찾을 수 없을 때 404가 자동으로 렌더링되기 때문에이 코드 줄을 추가하면 문제가 해결됩니다. 그러나 그들은 그렇지 않습니다.
코드에서 올바른 관계를 설정 했으므로 전체 컨트롤러에서 질문을 혼란스럽게하고 싶지 않았습니다.
언제나 도움을 주시면 감사하겠습니다. 시간을내어 감사드립니다.
가 어디 변수 item' 당신의'@를 설정합니까 사용할 수 있습니까? –
그게 문제예요. @item = Item.find (params [: id])'를 시도했지만 여기서는 @item을 설정하지 않았지만 작동하지 않습니다. 나는 내가 작성한 코드를 남겨 둘 것이라고 생각했습니다. 여기에 가장 단순한 깨진 형태입니다. –