2017-04-05 1 views
0

사용자가 객체 (foo)를 만들 수있는 과정은 무엇이 겠지만 중간에 사용자가 foo를 저장하여 나중에 다시 돌아올 수 있습니다. 어떻게하면 좋을까요? 내가 객체를 "저장"하는 것을 알고있는 유일한 방법은 컨트롤러에서 객체를 생성하고 객체를 생성하여 객체를 저장하는 것입니다.사용자가 공개하지 않고 모델을 저장할 수있게하는 방법 - ruby ​​on rails

def create 
    @foo = current_user.foo.create(foo_params) 
end 

는하지만 어떻게 사용자가 foo는로 돌아가서 그들이 푸 인덱스에 볼 수 있도록 foo에 게시 할 수있을 정도로 시작한 일을 마무리 할 수있다.

결국 자동 저장 기능을 만들어 사용자가 저장하기 전에 창을 닫으면 여전히 액세스 할 수 있도록하고 싶습니다.

답변

1

한 가지 방법은 active 열을 사용하는 것입니다.이 열은 개체가 만들어 지거나 완성 될 때 true로 설정됩니다. foo 색인에는 active 개의 개체 만 표시됩니다. 양식에서 JS/AJAX를 사용하여 주기적으로 백그라운드에서 양식을 저장할 수있는 자동 저장 기능을 사용할 수 있습니다.

autoSave = -> 
    $.ajax 
    type: 'POST' 
    data: $("#form").serialize() 
    url: '/foo/autosave' 
    dataType: 'script' 
    return 

$(document).ready -> 
    setTimeout autoSave, 10000 
    return 
+0

이것은 유망 해 보입니다. 사용자가 foo를 "저장할"때 수행 할 작업의 기본 예제를 제공 할 수 있습니까? 즉, 컨트롤러 대신 사용자가 생성하는 대신 "활성 상태로 설정할 때 활성 상태로 설정"을 저장한다고 알려주려면 어떻게해야합니까? 다른 방법을 만들 수 있습니까? –

+0

당신은 아마 create 메소드에 그것을 추가 할 수 있습니다 :'def autosave'에서'def create @foo = new (foo_params) @ foo.active = true @ foo.create end' 방법 – Shannon

+0

멋지다! 대답을 사랑해. 감사 –