Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails不带Javascript的内联链接的restful非GET请求_Javascript_Html_Ruby On Rails_Css - Fatal编程技术网

Rails不带Javascript的内联链接的restful非GET请求

Rails不带Javascript的内联链接的restful非GET请求,javascript,html,ruby-on-rails,css,Javascript,Html,Ruby On Rails,Css,Rails似乎不支持非GET请求的内联链接。现成的Rails脚手架系统使用内联链接进行删除 虽然rails.js在发送删除请求之前完美地添加了csrf标记,但没有Javascript的浏览器完全绕过了这一步骤,只向资源发送GET请求 我当前的应用程序也是这样设计的:其他非GET请求将从内联链接启动 我提出的非解决方案是创建一个与#destroy对应的“deleting view”(删除视图),因为#new是创建#create,而#edit是更新#update,然后只需要有一个表单来执行逻辑,将c

Rails似乎不支持非GET请求的内联链接。现成的Rails脚手架系统使用内联链接进行删除

虽然
rails.js
在发送删除请求之前完美地添加了csrf标记,但没有Javascript的浏览器完全绕过了这一步骤,只向资源发送GET请求

我当前的应用程序也是这样设计的:其他非GET请求将从内联链接启动

我提出的非解决方案是创建一个与
#destroy
对应的“deleting view”(删除视图),因为
#new
是创建
#create
,而
#edit
是更新
#update
,然后只需要有一个表单来执行逻辑,将csrf植入委托给表单生成器(它是开箱即用的)

这种解决方案的问题在于需要的步骤比理想的要多。显然,我们可以说不便不是太大,如果您使用的是非JS浏览器,您可能可以忍受不太现代的UX。但我想有一个更好的解决方案

所以,我突然想到的是用表单代替链接。唯一的问题是,在非JS浏览器中提交表单的唯一方法是使用提交按钮。但是
input type=“submit”
是一个被替换的元素,其样式与普通元素不同。试图使跨浏览器与常规内联或内联块文本对齐是一个令人沮丧的练习


那么最好的方法是什么呢。还有什么深层次的原因使得Rails的框架在非JS浏览器的开箱即用浏览器上看起来不起作用吗?

类型为“image”的输入也充当“submit”按钮。另外,我认为
标记可以是类型为“submit”。@Pointy:Read:Edit。另外,
有相同的问题,是被替换的元素。@Hello71我不认为
是被替换的元素。使用CSS,您可以完全控制
内容的样式。