2013-10-01 1 views
0

has_many 연관성에 문제가 있습니다. ! 는 어떻게 든 u.groups.create (: 이름 => "테스트 그룹을": 학교 => "학교")를 추적과 올바른 삽입한다 :컨트롤러가 아닌 콘솔의 작업과 많은 연관성이 있습니다.

(는 0.1ms) 트랜잭션 SQL을 시작을 (4.5 (예 : ""created_at ","find_ble ","school ","updated_at ") VALUES (?, ?,"created_at ", Tue, 01 10 월 2013 08:13:36 UTC +00 : 00], [ "findeble", false], [ "이름", "테스트 그룹"], [ "학교", "학교"], [ "updated_at ", Tue, 01 Oct 2013 08:13:36 UTC +00 : 00]] SQL (0.3ms) INSERT INTO"사용자 그룹 "("created_at ","group_id ","updated_at ", "user_id ") VALUES ?,?,?,?) [[ "created_at", Tue, 01 10 월 2013 08:13:36 UTC +00 : 00], [ "group_id", 7], [ "updated_at", Tue, 01 Oct 2013 08:13:36 UTC +00 : 00], [ "user_id", 1 ]] (를 0.5ms)는 트랜잭션을 커밋 => #

하지만이 groups_controller를 통해하려고 할 때

# GET /groups/new 
     # GET /groups/new.json 
     def new 
     @group = current_user.groups.new 

     respond_to do |format| 
      format.html # new.html.erb 
      format.json { render json: @group } 
     end 
     end 

    def create 
    @group = current_user.groups.new(params[:group]) 

    respond_to do |format| 
     if @group.save 
     format.html { redirect_to @group, notice: 'Group was successfully created.' } 
     format.json { render json: @group, status: :created, location: @group } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @group.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

이것은 추적 작성

가 "/ 그룹"POST 시작을 127.0.0.1 at 2013-10-01 10:20:15 +0200 GroupsController로 처리 # HTML로 생성 파 ameters : { "UTF8"=> "✓" "authenticity_token"=> "frETQoB5Mu2gLnIBG644i09XDOHFsEBTGEvrEQmfgPA =" "그룹"=> { "이름"=> "테스트 그룹 2", "학교"=> "다른 학교" , "findeble"=> "1"} "커밋"=> "그룹 생성"} 사용자로드 (0.2ms) SELECT "users". * "FROM"users "WHERE"users "."id "= 1 LIMIT 1
(0.1ms) 트랜잭션 SQL 시작 (0.8ms) INSERT INTO "그룹" ("created_at", "findeble", "name", "school", "updated_at") VALUES (?, ?,?, ?), [ "created_at", Tue, 01 Oct 2013 08:20:15 UTC +00 : 00], [ "findeble", true], [ "name", "test group2"], [ "school ","다른 학교 "], ["updated_at ", Tue, 01 Oct 2013 08:20:15 UTC +00 : 00]
(6.1ms) 커밋 트랜잭션

이 경우에만 조인 된 테이블에 레코드가 생성되지 않고 새로운 그룹 레코드가 생성됩니다. 나는이 차이가 무엇인지 이해할 수 없다.

답변

0

당신은 build 방법을 사용해야합니다

current_user.groups.build(params[:group]) 
+0

흠. 콘솔에서 그렇게 할 때 그룹 컨트롤러를 통해 할 때와 똑같이 동작합니다. 조인 모델을 건너 뜁니다. 하지만 내가 사용할 때! 그것은 합쳐진 모델에 레코드를 만든다. – Petter

+1

'g = u.groups.build (: name => "test group", : school => "the school")'그리고 나서'g.save'와 같이 콘솔에 저장하려고하십시오. –

0

lol007 잘 또는 당신은 또한 새로운 액션

@group = current_user.groups.build 

에서 그

처럼 할 수있는 그리고의 행동을

를 만들
@group = current_user.groups.create(params[:group])