Rails:respond_to js 不使用文本呈现是一个字符串

Posted

技术标签:

【中文标题】Rails:respond_to js 不使用文本呈现是一个字符串【英文标题】:Rails: respond_to js do not render with text is a String 【发布时间】:2017-06-28 08:17:33 【问题描述】:

我有一个响应格式 js 的代码

        app = CheckAppExist.new(params[:url])
        if(app.exist?) 
            cookies[:package_name] = app.package_name
            cookies[:app_url] = app.app_url
            respond_to do |format|
                format.html 
            format.json 
            format.js  render :text => "200" 
          end
        else
            respond_to do |format|
                format.html 
            format.json 
            format.js  render :text => "Url or Package Name is wrong ", status: :unprocessable_entity 
          end
        end

上面的代码是有效的,但是当我改变响应文本时

format.js render :text => "200" format.js render :text => "some text here"

它不起作用。我使用 rails ujs 发送和接收请求。

当文本是字符串数字(“200”)时,运行方法.on("ajax:success",...),当文本渲染为字符串时,运行方法.on("ajax:error",...)

我不明白上述错误,任何人都可以帮助我。 谢了。

【问题讨论】:

请详细说明“它不起作用”是什么意思。抛出的具体错误是什么? 【参考方案1】:

试试这个:

render inline: 'your text' 

【讨论】:

以上是关于Rails:respond_to js 不使用文本呈现是一个字符串的主要内容,如果未能解决你的问题,请参考以下文章

Rails respond_to 重定向不起作用

在rails中使用js.erb

Rails 5 API 控制器中未定义的实例方法“respond_to”

无法使用 Attachinary 在 Heroku 上运行 Rails 控制台:未定义方法 `respond_to' for Attachinary::CorsController:Class

Rails 4 使用 ajax、jquery、:remote => true 和 respond_to 渲染部分

jQuery Mobile 在使用 UJS 远程链接接受标头时中断 Rails respond_to