javascript - 将 Javascript 效果添加到 RoR 中的表单

标签 javascript jquery ruby-on-rails authlogic

希望我能清楚我的问题。如果您需要进一步说明我的意思,请告诉我,我会尽我所能澄清一切。

我目前正在做一个简单的 Ruby on Rails 项目,我想在我的登录表单中添加一些交互性。目前,如果您单击“登录”链接,登录表单将正常工作,该链接会将您带到 new_user_sessions 页面。但我想切断重定向,当用户单击登录时,登录表单将在同一页面上大约 700 毫秒后显示。我打算只使用函数 show(700) 来显示登录表单。我遇到的问题是,我想我可以把这个登录表单放在布局目录中,这样用户就可以从每个页面登录。问题是我的登录表单依赖于来自 User_sessions(使用 authlogic) Controller 的 @user_session 对象。这是我的 User_sessions Controller 的 new.html.erb 文件包含的内容:

<%= form_for @user_session do |f| %>
<%= render '/shared/error_messages', :target => @user_session %>

<p>
  <%= f.label :username %><br />
  <%= f.text_field :username %><br />
</p>
<p>
  <%= f.label :password %><br />
  <%= f.password_field :password %><br />
</p>
<p class="button">
  <%= f.submit "Submit" %>
</p>
<% end %>`

当用户单击登录链接时,我希望通过 show() 函数显示此表单。有什么办法可以做到这一点?也许通过在 application.html.erb 中使用某种 render 语句来呈现这个新的 User_sessions View ?谢谢你的帮助。

最佳答案

将您的登录表单放入部分:

app/views/user_sessions/_login.erb

<%= form_for user_session do |f| %>
<%= render '/shared/error_messages', :target => user_session %>

<p>
  <%= f.label :username %><br />
  <%= f.text_field :username %><br />
</p>
<p>
  <%= f.label :password %><br />
  <%= f.password_field :password %><br />
</p>
<p class="button">
  <%= f.submit "Submit" %>
</p>
<% end %>

从您的布局渲染局部:

app/views/layout/application.html.erb

<% if @user_session %>
  <%= render "user_sessions/login", :user_session => @user_session %>
<% end %>

最后,确保在适当的地方将 @user_session 设置为空的 UserSession 对象:

app/controllers/application_controller.rb

before_filter :set_user_session
protected
  def set_user_session
    # do some logic here to set @user_session when appropriate.
  end

关于javascript - 将 Javascript 效果添加到 RoR 中的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3897926/

相关文章:

JavaScript - 为什么我可以在数组中设置键?

javascript - 如何使用 jQuery 验证按钮单击时的文本字段?

javascript - 有没有办法检测 Javascript 中的 DOM 节点更改?

javascript - 是否可以通过使用远程链接返回 HTML(而不是 JS)数据?

mysql - 在mysql数据库中添加分钟并与Time.now进行比较

javascript - 为什么 swank-js 在 emacs REPL 中给我 "document is not defined"?

jquery - 如何打开垂直下拉菜单项以左对齐

javascript - 如何在php中获取ajax下拉列表的值?

javascript - 如何将这个动态创建的 3D 对象置于其父对象的中心?

mysql - 我如何使用 mysql 创建 Rails 3.1 应用程序