gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:48:18 27 4
gpt4 key购买 nike

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

我目前正在做一个简单的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com