我有一个rails应用程序,我需要在其中创建一些输入表单,用户可以在其中输入正则表达式。这个正则表达式需要传递给我的方法check_site(url,regex),它将返回true或false取决于页面上找到的正则表达式。 我试图创建一个'link_to':
link_to 'Search', check(item.name, @pattern)
在这种情况下,方法“check”不是按下按钮而是通过页面加载来调用。 我需要使用JS + AJAX吗?怎么样?
答案 0 :(得分:2)
使用您的Rails表单设置AJAX / JS的快速课程:
确保在您的页面<head>
中调用正确的javascript:JQuery + application.js(当然是与Jquery兼容的版本!)
将您的链接更改为:
link_to 'Search', check_item_path(:name=>item.name, :id=>@pattern, :var=>var, etc.), :remote => true
在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
在相应的视图文件夹中创建一个名为check.js.erb
的文件,然后输入您要更新页面的javascript /确认表单成功提交/返回搜索结果等。
$(document).ready( function() {
$("#result").html(" <%= @item.result == true ? "true" : "false" %> ");
});
这意味着Rails无法识别到该控制器操作的路由。在控制台中运行rake routes
,看看是否有与items controller,check_item操作相对应的内容。如果没有,请添加:
match 'items/check_item'
到您的路线文件。然后再次运行rake路线,您应该看到check_item
出现在某处 - 如果有,则可以再次使用check_item_path
。