使用经过身份验证的 Ruby on Rails 站点,该操作最好映射到站点索引页面



我的Ruby on Rails Web应用程序具有标准身份验证。当用户从索引页登录时,我决定将索引页建模为"user_sessions"资源的"新"操作。

我决定使用 css 隐藏登录表单,以便它可以在 javascript 启动的模式对话框中可见。

现在的问题是,当用户关闭javascript时,我该怎么办?我应该将他们发送到哪里登录?

我考虑过从javascript中隐藏登录表单,所以如果javascript被关闭,表单将保持可见。这样做的问题是,当页面加载时,表单会在消失之前短暂出现。

我不会那样做。构建一个普通的索引页,并链接到登录表单。然后使用 ujs ,将链接设置为 remote(以便异步管理)并注册其处理程序以在弹出窗口中显示生成的表单。

(in the view)
link_to new_user_session_path, :remote => true, :class => "possibly-modal-dialog"
(in some js or coffee file)
$(document).on "click", "a.possibly-modal-dialog", (event) ->
  event.preventDefault
  # to whatever needed to show the dialog.

这样,没有javascript的用户将看到普通链接,而使用javascript的用户将只触发模态对话框。

你真的需要关闭JavaScript的用户吗?在主页上为他们发出通知:

<noscript>
    <p><font color="red" size="3"><b>Javascript is turned off. <br/> 
    You need to <a href="/settings">change your browser settings</a>.</b></font>
</noscript>

最新更新