2010-02-10 56 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 %> 

我的行動

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

出於某種原因,提交不叫create.js.rjs模板,但而是嘗試調用create.html.erb,我是否需要某種形式的額外設置?

順便說一句,我使用的軌道2.3.5

回答

1

我不記得在軌道的確切默認行爲,但你試圖把一個在的respond_to控制器動作結束:

respond_to(:html, :js) 

希望這可以幫助。

編輯

我回去就該去檢查了Rails的默認行爲,渲染視圖。在這種情況下,Rails支持約定優於配置。默認行爲是Rails自動使用與操作對應的名稱呈現視圖。如果你堅持這個慣例,你不再需要respond_to。這是documentation

只是想用正確的信息更新我的文章...很高興你想出了你的問題。

1

我已經命名我的模板create.rjs.js而不是create.js.rjs,這就是爲什麼我沒有工作