create.js.erb在浏览器上显示其代码而不是执行代码

时间:2013-01-16 17:53:29

标签: jquery ruby-on-rails ruby ajax

我正在使用ruby 1.8.7和rails 2.3.11。我有一个简单的表单,我想在create.js.erb中添加一些ajax:

alert('call from ajax');

在我的控制器中,我更改了创建操作:

def create
  @weburl = Weburl.new(params[:weburl])

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

我的表格部分

<% form_remote_for(weburl) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :url %><br />
    <%= f.text_field :url %>
  </p>
  <p>
   <%= f.submit 'Save' %>
  </p>
<% end %>

我的new.html.erb文件是

<h1>New weburl</h1>
<%= render :partial => 'form', :locals=>{:weburl=>@weburl}%>
<%= link_to 'Back', weburls_path %>

当我提交表单时,它会显示在浏览器上:

alert('call from ajax');

而不是javascript弹出警报消息。

1 个答案:

答案 0 :(得分:0)

请提供更多代码。问题是,你的javascript代码没有在客户端执行。如果可能,将响应放在eval()中。看看这个w3schools tutorial