0
나는 belongs_to has_many 관계에있는 클러스터와 사용자가있는 레일 애플리케이션이 있습니다. cluster_controller에서 방금 생성 된 객체에서 ID에 액세스하기
이 방법을 만들어 쓰기 :@cluster = @current_user.clusters.build(params[:cluster])
가 지금은 몇 가지 명령 줄 스크립트를 실행하려면 :
output = `echo cluster#{@cluster.id} > /tmp/out`
는
... 여기 기능
의 나머지는 또한
시도output = `echo cluster#{@cluster.id.to_s} > /tmp/out`
이 작업을 수행 할 때 파일에 클러스터가 있고 # 클러스터가 아닙니다. 왜 그런가요? 어떻게 수정합니까?
감사합니다. 문제를 heres : 이 경우 스크립트가 실패 할 수 있으며 클러스터를 생성하지 않을 수 있습니다. 데이터베이스에서 제거해야합니까 아니면 더 좋은 방법이 있습니까? – dschatz
트랜잭션에서 create를 수행 한 다음 스크립트가 실패 할 경우 트랜잭션을 롤백 할 수 있습니다. 또 다른 옵션은 id가 아닌 다른 식별 특성을 로그에 출력하는 것입니다. 이는 실제로 사용 사례에 따라 다릅니다. –
클러스터를 만들 때마다 실행되는 스크립트를 실행할 때마다 고유 한 값을 제출하면됩니다. 나는 유일해야하기 때문에 이드를 선택했다. 그런 다음 어떤 이유로 든 스크립트가 실패하면 사용자를 홈 페이지 (또는 어디든)로 리디렉션하고 클러스터 생성이 실패했음을 알리십시오. 물론 이것은 데이터베이스를 변경하지 않아야합니다. – dschatz