2011-05-31 105 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