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) 커밋 트랜잭션
이 경우에만 조인 된 테이블에 레코드가 생성되지 않고 새로운 그룹 레코드가 생성됩니다. 나는이 차이가 무엇인지 이해할 수 없다.
흠. 콘솔에서 그렇게 할 때 그룹 컨트롤러를 통해 할 때와 똑같이 동작합니다. 조인 모델을 건너 뜁니다. 하지만 내가 사용할 때! 그것은 합쳐진 모델에 레코드를 만든다. – Petter
'g = u.groups.build (: name => "test group", : school => "the school")'그리고 나서'g.save'와 같이 콘솔에 저장하려고하십시오. –