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

Input form where user could enter regular expression

本文关键字:输入 正则表达式 表单 在其中 用户      更新时间:2023-09-26

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

link_to 'Search', check(item.name, @pattern)
在这种情况下,方法

"check"不是通过按下按钮而是通过页面加载来调用。我需要使用 JS+AJAX 吗?如何?

关于使用 Rails 表单设置 AJAX/JS 的速成课程:

  1. 确保在页面中调用正确的javascript <head>: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" %> ");
    });
    

无方法错误:check_item_path

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

match 'items/check_item'

到您的路由文件。然后再次运行耙子路线,您应该会看到check_item出现在某处 - 如果是这样,您可以再次使用check_item_path