用户可以输入正则表达式的输入表单

时间:2011-05-08 21:03:28

标签: javascript ruby-on-rails ajax input

我有一个rails应用程序,我需要在其中创建一些输入表单,用户可以在其中输入正则表达式。这个正则表达式需要传递给我的方法check_site(url,regex),它将返回true或false取决于页面上找到的正则表达式。 我试图创建一个'link_to':

link_to 'Search', check(item.name, @pattern)

在这种情况下,方法“check”不是按下按钮而是通过页面加载来调用。 我需要使用JS + AJAX吗?怎么样?

1 个答案:

答案 0 :(得分:2)

使用您的Rails表单设置AJAX / JS的快速课程:

  1. 确保在您的页面<head>中调用正确的javascript:JQuery + application.js(当然是与Jquery兼容的版本!)

  2. 将您的链接更改为:

    link_to 'Search', check_item_path(:name=>item.name, :id=>@pattern, :var=>var, etc.), :remote => true
    
  3. 在items_controller中:

    def check  
      ...your regex...  
      respond_to do |format|  
        format.html { redirect_to ...(wherever you'd like if no .js) }  
        format.js  
      end  
    end
    
  4. 在相应的视图文件夹中创建一个名为check.js.erb的文件,然后输入您要更新页面的javascript /确认表单成功提交/返回搜索结果等。

    $(document).ready( function() {
      $("#result").html(" <%= @item.result == true ? "true" : "false" %> ");
    });
    
  5. 没有方法错误:check_item_path

    这意味着Rails无法识别到该控制器操作的路由。在控制台中运行rake routes,看看是否有与items controller,check_item操作相对应的内容。如果没有,请添加:

    match 'items/check_item'
    

    到您的路线文件。然后再次运行rake路线,您应该看到check_item出现在某处 - 如果有,则可以再次使用check_item_path