2011-05-31 103 views
1

我還是比較新的rails和習慣了幾件事情。只是一個簡單的問題,我有一個AJAX形式(與:遠程=「真等等),它工作併發送數據到服務器沒有頁面加載。爲部分渲染javascript - Rails 3

我的問題是圍繞可以在帖子後使用的JavaScript文件。我的部分名爲'_newsomething.html.erb',一旦發佈,我想執行一個JavaScript文件 - 這些文件必須命名控制器中的操作,以同步和正常工作在軌道?目前,我有一個名爲'create.js.erb'的JavaScript文件,其中僅包含一個JavaScript警報,但它不會觸發。

例如我是否需要一個名爲'_create.html.erb'的部分,然後是一個名爲'create.js.erb'的JavaScript文件?無論如何告訴Rails從控制器內部去哪裏尋找一個JavaScript文件?

在此先感謝!

編輯:下面控制器代碼(很基本的,在瞬間產生)

def create 
@snip = Snip.new(params[:snip]) 

respond_to do |format| 
    if @snip.save 
    format.html { redirect_to(@snip, :notice => 'Snip was successfully created.') } 
    format.xml { render :xml => @snip, :status => :created, :location => @snip } 
    else 
    format.html { render :action => "new" } 
    format.xml { render :xml => @snip.errors, :status => :unprocessable_entity } 
    end 
end 

+0

如果包含控制器代碼,它可能會有所幫助。具體來說,當您提交遠程表單時,將會調用創建操作。 – 2011-05-31 19:20:44

回答

2

在你的控制器動作,您必須有:

respond_to do |format| 
    format.html { .... } 
    format.js 
end 

格式.js是重要的部分。如果Rails通過AJAX發現您正在POST,那麼它會呈現_create.js.erb部分。

+0

感謝隊友 - 需要製作一些其他小型的推特,但這個技巧,可愛的東西:)。 – Jamie 2011-05-31 19:48:07