gpt4 book ai didi

ruby-on-rails - devise_mapping.registerable?,devise_mapping.recoverable?....来自哪里?

转载 作者:行者123 更新时间:2023-12-04 07:30:28 27 4
gpt4 key购买 nike

devise_mapping.registerable?, devise_mapping.recoverable?....来自哪里?我的意思是我找不到指示它们的文件,找不到任何关于它们的信息。

为什么在 if..end 结构中总是有一个“-”?例如:

<%- if controller_name != 'sessions' %>
<%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>

最佳答案

当 Rails 服务器启动时,在 devise 中 gem 代码 lib/devise/modules.rb电话 add_module对于所有可用的模块。 lib/devise.rb电话 Devise::Mapping.add_module module_name . lib/devise/mapping.rb然后构建类似 registerable? 的方法使用此代码:

# Create magic predicates for verifying what module is activated by this map.
# Example:
#
# def confirmable?
# self.modules.include?(:confirmable)
# end
#
def self.add_module(m)
class_eval <<-METHOD, __FILE__, __LINE__ + 1
def #{m}?
self.modules.include?(:#{m})
end
METHOD
end

如果您运行 Rails 控制台,然后查看您的设计资源之一,例如 :user ,您可以通过查看 Devise.mappings[:user].methods.sort 查看构建的方法您可以使用 Devise.mappings[:user].modules 查看您决定包含在用户模型中的模块.

<% %> 中的“-”代码与省略空格有关,尽管它可能不再需要或者可能因浏览器而异,因为并不总是存在明显的差异(参见:Rails ERB <%- ... -%> vs. <% ... %>Difference between -%> and %> in rails)。

关于ruby-on-rails - devise_mapping.registerable?,devise_mapping.recoverable?....来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383498/

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