如何在 Rails 中只渲染没有 html(模板、布局)的 js
How to render only js without html (template, layout) in Rails
我有控制器 Message_Controller 并且这个控制器有方法 "message" 在这个方法中我想渲染 .js.erb 文件我需要从 rails [=25 调用 js 函数=] 需要在没有 html-template(layout) 的情况下重新生成它,仅此代码中的 js 代码我将使用 args 调用 js 函数。如何制作它?
我的路线:
post 'chat_bot/message', to: 'chat_bot#message'
我的控制器:
class ChatBotController < ApplicationController
layout false
def message
#gon.watch.message = params[:text]
@message = params[:text]
puts @message
render partial: 'message.js.erb', layout: false
end
end
我的留言。js.erb文件
alert('<%=@message %>');
只需更新为
def message
@message = params[:text]
respond_to do |format|
format.js
end
end
有
render partial: 'message.js.erb', layout: false
Rails 将在响应该控制器的文件夹中查找名为 _message.js.erb 的部分。
您可以使用 respond_to
并指定格式和要呈现的内容:
def message
respond_to do |format|
format.html { render partial: 'message.js.erb' }
end
end
如果您愿意,可以跳过实例变量分配,因为您可以访问请求中的参数。
如果您的想法是 "evaluate" 警报,那么它仍然应该在脚本标记内:
<script>
alert("<%= params[:text] %>");
</script>
我有控制器 Message_Controller 并且这个控制器有方法 "message" 在这个方法中我想渲染 .js.erb 文件我需要从 rails [=25 调用 js 函数=] 需要在没有 html-template(layout) 的情况下重新生成它,仅此代码中的 js 代码我将使用 args 调用 js 函数。如何制作它?
我的路线:
post 'chat_bot/message', to: 'chat_bot#message'
我的控制器:
class ChatBotController < ApplicationController
layout false
def message
#gon.watch.message = params[:text]
@message = params[:text]
puts @message
render partial: 'message.js.erb', layout: false
end
end
我的留言。js.erb文件
alert('<%=@message %>');
只需更新为
def message
@message = params[:text]
respond_to do |format|
format.js
end
end
有
render partial: 'message.js.erb', layout: false
Rails 将在响应该控制器的文件夹中查找名为 _message.js.erb 的部分。
您可以使用 respond_to
并指定格式和要呈现的内容:
def message
respond_to do |format|
format.html { render partial: 'message.js.erb' }
end
end
如果您愿意,可以跳过实例变量分配,因为您可以访问请求中的参数。
如果您的想法是 "evaluate" 警报,那么它仍然应该在脚本标记内:
<script>
alert("<%= params[:text] %>");
</script>