2010-02-10 2 views
1

그래서 여기 내 양식remote_form_for가 RJS 템플릿을 호출하지 않습니다

<% remote_form_for([:admin, Page.new]) do |f| %> 
    <ol> 
     <li> 
      <%= f.label(:title) %> 
      <%= f.text_field(:title) %> 
     </li> 
     <li> 
      <%= f.label(:parent_page) %> 
      <%= f.select(:parent_page_id, Page.roots.map { |p| [p.title, p.id] }.unshift(["none", nil])) %> 
     </li> 
    </ol> 
    <div class="modal-controls"> 
     <%= submit_tag("Save") %> or <%= link_to_function("cancel", "R.Pages.hideAdd();") %> 
    </div> 
<% end %> 

그리고이 create.js.rjs 템플릿을 호출하지 않습니다 제출 어떤 이유로 내 행동

def create 
    @page = Page.create(params[:page]) 
    @languages = Language.all 
    @languages.each do |language| 
    @page.page_languages.create(:language_id => language.id) 
end 

하지만입니다 대신 create.html.erb를 호출하려고합니다. 양식과 함께 추가 설정이 필요합니까?

BTW 내가 사용하고 레일 2.3.5

답변

1

내가 레일의 정확한 기본 동작을 기억하지만, 당신이 당신의 컨트롤러 액션의 마지막에 respond_to을 퍼팅 시도 할 수 없습니다 :

respond_to(:html, :js) 

희망이 도움이됩니다. 내가 렌더링 뷰에 관련하여 레일의 기본 동작을 확인하기 위해 다시 갔다

편집 할 수 있습니다. 레일즈는이 경우 컨벤션보다 규칙을 선호합니다. 기본 동작은 Rails가 작업에 해당하는 이름으로보기를 자동으로 렌더링한다는 것입니다. 이 규칙을 지키면 더 이상 respond_to가 필요하지 않습니다. 다음은 documentation입니다.

내 정보를 올바른 정보로 업데이트하고 싶습니다 ... 문제를 해결해 주어서 기쁩니다.

1

create.js.rjs 대신 내 템플릿 create.rjs.js의 이름을 지정 했으므로 작업이 왜 필요하지 않은지

관련 문제