如何在 Rails 中的 ajax 调用中的 js 响应中包含 html 标记
How to include html tags in a js response in ajax call in Rails
我有一个控制器方法来登录我的应用程序,如下所示:
def create
user = User.find_by(mail: params[:session][:mail].downcase)
if user && user.authenticate(params[:session][:password])
if user.confirmed?
# Stuff when login is OK
.......
else
logout
text = I18n.t("error.login.confirmation", :link => ActionController::Base.helpers.link_to(I18n.t("button"), confirm_user_path(user), :class => 'btn btn-info'))
@result = ActionController::Base.helpers.sanitize(text, :tags => ['br','a']).html_safe
respond_to do |format|
format.html { render 'new' }
format.js { @result.html_safe }
end
end
# more stuff
.......
end
end
如果用户尚未确认电子邮件,我想向他显示一条消息,其中包含重新发送确认邮件的链接:
Please confirm your signup. <br /> <br /> <a class="btn btn-info" href="/users/48/confirm_user">Re-send confirmation mail.</a>
更新:这是渲染视图的方式
$("p.bg-danger").html("<%= @result %>")
在create
操作中,不需要键入@result.html_safe
,因为它实际上在这里什么都不做。相反,您可能希望告诉控制器不要渲染布局。
def create
# ...
respond_to do |format|
format.html { render 'new' }
format.js { render layout: false }
end
end
然后,在create.js.erb中:
$("p.bg-danger").html('<%=j @result %>');
相关文章:
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- 如何在 D3 中使力布局图.js响应屏幕/浏览器大小
- 从 Zend 控制器传递值并在 JS 响应中获取它
- 使JS响应屏幕宽度
- HTML、CSS、JS响应下拉菜单
- 在 Rails 中,我可以在 JS 响应后在控制器操作中执行 ActionMailer 逻辑吗?
- skrollr.js响应能力
- 清除 JS 响应
- 如何在 Rails 中的 ajax 调用中的 js 响应中包含 html 标记
- 如何在angular中解析mongodb数据的node-js响应
- 如何在node.js响应中添加跨域标头
- 如何在node.js响应中过滤mysql的结果
- js响应性不工作在小屏幕上
- 如何使用带有JS响应的布局?
- 用meteor.js响应式调用js函数/事件
- 头:ok对一个:js响应有效
- Rails,js响应,只是一个通知
- Angular JS响应Javascript所做的更改
- 在快速.js响应模块的基础上进行扩展
- 通过XHR流式传输Node.js响应到客户端