Ajax 重定向到其他url后呈现部分模板
我的目标是在用户创建新帐户并重定向到其个人资料页面后,为用户显示欢迎消息;i、 例如,将信息显示在他们的个人资料页面上 使用下面的代码,我能够显示消息,但仅在重定向发生之前的一瞬间显示,尽管如此,这还是成功的 在控制器中,我创建消息并使用Ajax调用呈现JavaScript模板:Ajax 重定向到其他url后呈现部分模板,ajax,json,ruby-on-rails-4,model-view-controller,renderpartial,Ajax,Json,Ruby On Rails 4,Model View Controller,Renderpartial,我的目标是在用户创建新帐户并重定向到其个人资料页面后,为用户显示欢迎消息;i、 例如,将信息显示在他们的个人资料页面上 使用下面的代码,我能够显示消息,但仅在重定向发生之前的一瞬间显示,尽管如此,这还是成功的 在控制器中,我创建消息并使用Ajax调用呈现JavaScript模板: def create_user # ... @welcome_msg = "WELCOME" format.js { render template: "layouts/message.js.e
def create_user
# ...
@welcome_msg = "WELCOME"
format.js { render template: "layouts/message.js.erb" }
# ...
end
message.js.erb
$(window.location.replace("<%= profile_url %>"));
$("#welcome_message_placeholder").html("<%= j render partial: 'layouts/welcome_message', locals: { :user => @user, :welcome_msg => @welcome_msg } %>");
<%= @welcome_msg %>
<div id="welcome_message_placeholder"></div>
<% if custom_notice %>
<%= render partial: "layouts/welcome_message" %>
<% end %>
<%= custom_notice %>
$(window.location.replace(“”);
$(“#欢迎消息_占位符”).html(@user,:welcome_msg=>@welcome_msg}%>”;
\u欢迎\u message.html.erb
$(window.location.replace("<%= profile_url %>"));
$("#welcome_message_placeholder").html("<%= j render partial: 'layouts/welcome_message', locals: { :user => @user, :welcome_msg => @welcome_msg } %>");
<%= @welcome_msg %>
<div id="welcome_message_placeholder"></div>
<% if custom_notice %>
<%= render partial: "layouts/welcome_message" %>
<% end %>
<%= custom_notice %>
application.html.erb
$(window.location.replace("<%= profile_url %>"));
$("#welcome_message_placeholder").html("<%= j render partial: 'layouts/welcome_message', locals: { :user => @user, :welcome_msg => @welcome_msg } %>");
<%= @welcome_msg %>
<div id="welcome_message_placeholder"></div>
<% if custom_notice %>
<%= render partial: "layouts/welcome_message" %>
<% end %>
<%= custom_notice %>
我需要添加/更改什么以确保用户仅在被重定向后才能看到消息?结果表明,实现这一点的一种方法与我上面提到的方法略有不同 我所做的(谢天谢地)是在我的
users
控制器中创建了一个新的flash
类型,然后在我的所有控制器中定义它(以避免在我的应用程序模板中未定义它),如下所示:
现在,消息基本上可以在基本模板中被视为传统的通知
,部分内容可以直接呈现(无需JS模板中间人):
application.html.erb
$(window.location.replace("<%= profile_url %>"));
$("#welcome_message_placeholder").html("<%= j render partial: 'layouts/welcome_message', locals: { :user => @user, :welcome_msg => @welcome_msg } %>");
<%= @welcome_msg %>
<div id="welcome_message_placeholder"></div>
<% if custom_notice %>
<%= render partial: "layouts/welcome_message" %>
<% end %>
<%= custom_notice %>
\u欢迎\u message.html.erb
$(window.location.replace("<%= profile_url %>"));
$("#welcome_message_placeholder").html("<%= j render partial: 'layouts/welcome_message', locals: { :user => @user, :welcome_msg => @welcome_msg } %>");
<%= @welcome_msg %>
<div id="welcome_message_placeholder"></div>
<% if custom_notice %>
<%= render partial: "layouts/welcome_message" %>
<% end %>
<%= custom_notice %>
请注意,Rails 3不支持添加flash类型(注册自定义flash类型)。在重定向页面上显示欢迎消息,并确定用户是否是新创建的,显示消息。