나는 레일 2에서이 Ajax 호출로 고민하고 있습니다 :Ajax에서 Rails3을 호출하는 방법?
def add_task_link(name) link_to_function name do |page| page.insert_html :bottom, :tasks, :partial => 'task', :object => Task.new end end
어떻게 레일 3이 표현 할 수 있습니까?
감사합니다,
나는 레일 2에서이 Ajax 호출로 고민하고 있습니다 :Ajax에서 Rails3을 호출하는 방법?
def add_task_link(name) link_to_function name do |page| page.insert_html :bottom, :tasks, :partial => 'task', :object => Task.new end end
어떻게 레일 3이 표현 할 수 있습니까?
감사합니다,
이 프로젝트에 몇 가지 힌트는 Github에서에 있습니다 생각
https://github.com/ryanb/complex-form-examples/blob/master/app/models/survey.rb
같이 https://github.com/ryanb/complex-form-examples
def link_to_add_fields(name, f, association) new_object = f.object.class.reflect_on_association(association).klass.new fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder| render(association.to_s.singularize + "_fields", :f => builder) end link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")") end
또한,이 accepts_nested_attributes_for 사용하는 것이 중요합니다 대신 link_to : remote => true를 원할 수 있습니다. link_to_function은 onclick 속성에 넣는 자바 스크립트 코드 문자열을 받아들입니다. 따라서 도우미 메서드 대신 다음을 사용하십시오.
<%= link_to 'My Link', new_task_path, :remote => true %>
그런 다음 새 작업에서 .js 응답을 블록에 추가해야합니다.
def new
@task = Task.new
respond_to do |format|
format.html
format.js { render :layout => false } # add this line
end
end
그런 new.js.erb
라는 응용 프로그램/뷰/작업에서 파일을 생성하고, 추가
$('body').append('<%= escape_javascript(render :partial => "form", :locals => { :task => @task }) %>');
이 부분 양식을 제공 설정은 당신이 당신의 new.html.erb에 대한 어쨌든 사용할 수있는 (하고 edit.html.erb 파일). 이 예제 저장소에서 몇 가지 예제를 보았습니다. https://github.com/nu7hatch/rails3-ujs-example/blob/master/ 레일즈에서 원격 코딩 예제를 많이 사용하지는 않습니다. JSON 응답을 사용하는 대부분의 아약스 호출. 따라서 js 코드를 자산 파이프 라인 아래에 작성합니다.
과 관련하여 HTML의 일반 스 니펫을로드하는 데 유용한 요약 정보입니다. 내가 속한 상황은 나머지 양식과 "동기화"되어야하는 입력 필드를 사용합니다. 아래의 솔루션을 완전히 이해하려면 Ajax에 대해 더 자세히 알아야합니다. 의견에 감사드립니다. – poseid
올바르게 읽으면 폼에 필드를 추가하고 싶습니까? 그런 다음 위 코드를 그대로 사용할 수 있습니다. 본문에 추가하는 대신 양식 태그에 추가하십시오. 필요한 필드가 포함 된 다른 부분을 만듭니다. new.js.erb 파일에서 부분 이름을 참조하기 만하면됩니다. – agmcleod
나는 이것을 시도했다 : link_to_function name, "task"do | page | 그러나 이것은 "onclick"속성에 일부 JS 코드를 제공합니다.이 코드는 – poseid