2016-11-04 2 views
1

나는 항상 작업을 생성하기 위해 @new_task으로 사용자 정의 된 작업을 생성하기위한 간단한 양식을 가지고 있습니다. 별도의 양식을 사용하여이를 업데이트합니다. 내가 양식이 업데이 트의 가정 및 작업 이름으로 텍스트 필드를 채 웁니다 (작업 ID 호출) 작업/쇼에있을 때 레일 : 편집 양식을 지우는 방법은 무엇입니까?

#Form 
<%= form_for([@project, @new_task]) do |f| %> 
    <%= f.text_field :title, placeholder: 'Add a Task' %> 
    <%= f.submit %> 
<% end %> 

#TasksController 
def show 
    @projects = Project.all 
    @project = Project.find(params[:project_id]) 
    @task = Task.find(params[:id]) 
    @new_task = Task.new(title: @task.title) 
    @tasks = @project.tasks.all 
end 

문제

입니다.

"추가 작업"자리 표시 자만 표시되도록 텍스트 필드를 지워야합니다. 나는 행운이없는 여러 가지 다른 방법을 시도해 왔고 여기 누군가가 도울 수 있기를 바라고 있습니다.

+0

누구나 커피, js 또는 다른 방법을 사용하여이 텍스트 필드의 값을 지우는 방법을 알고 있습니까? – interfab

답변

2

모든 레일스 양식은 다음과 같이 작동합니다. - 변수에 저장된 값으로 필드를 미리 채 웁니다. @new_task = Task.new을 방금 수행 한 경우 모든 값은 nil이므로 모든 필드가 비어 있습니다. 그는 형태로 표시됩니다 귀하의 경우와 같이, 당신은 @new_task = Task.new(:title => @task.title)을 해봤 경우

, 다음 title 속성 은 (@task.title의) 값 있습니다.

아무 것도 표시하지 않으려면 미리 값을 설정하지 마십시오.

+0

문제는 양식이 제대로 작동하려면 제목 속성을 설정해야한다는 것입니다 (패치가 아닌 항상 POST해야 함). 아마도 JS를 사용하여 현장을 비울 수 있습니까? – interfab

+0

@interfab 그건 ... 올바른 방법이 아닙니다. 그 아이디어는 어디서 얻었습니까? 이 질문과 같이 form_for 태그에서'method' 지정자를 사용하십시오 : http://stackoverflow.com/q/9551330/3160466. 당신은 필드를 분명하게하기 위해 JS를 사용할 수 있지만 해킹의 맨 위에있는 해킹이고 실제로 "적절한"방법을 사용해야합니다. – ArtOfCode

+0

다음 질문에 대한 도움을 받았습니다. http://stackoverflow.com/questions/40413314/rails-how-to-force-a-form-to-post-rather-than-patch. 'method :: post'를 내 양식에 추가하는 것이 어떤 이유로 작동하지 않고, 레일즈는 여전히 편집을 원합니다. – interfab

관련 문제