我仍然相对较新的rails并习惯了一些事情。只是一个简单的问题,我有一个AJAX表单(带:remote => true等...),它可以在没有页面加载的情况下将数据发送到服务器。
我的问题是在帖子后可以使用的javascript文件。我的部分被称为'_newsomething.html.erb',一旦发布我想执行一个javascript文件 - 这些文件必须在控制器中的动作之后命名,以便在rails中同步并正常工作吗?目前我有一个名为“create.js.erb”的javascript文件,其中只有一个javascript警报,但它没有触发。
e.g。我需要一个名为'_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 :(得分:2)
在您的控制器操作中,您必须:
respond_to do |format|
format.html { .... }
format.js
end
format.js是重要的部分。如果Rails发现你正在通过AJAX进行POST,那么它将使_create.js.erb部分呈现。