我有控制器Message_Controller,并且该控制器具有此方法中的“消息”方法,我想渲染.js.erb文件,我需要从rails控制器调用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
我的message.js.erb文件
alert('<%=@message %>');
答案 0 :(得分:1)
使用
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
如果愿意,可以跳过实例变量的分配,因为您可以访问请求中的参数。
如果您的想法是“评估”警报,则它仍应位于脚本标记内:
<script>
alert("<%= params[:text] %>");
</script>
答案 1 :(得分:0)
只需用
更新def message
@message = params[:text]
respond_to do |format|
format.js
end
end