首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >devise_mapping.registerable?,devise_mapping.recoverable?....come从哪里来?

devise_mapping.registerable?,devise_mapping.recoverable?....come从哪里来?
EN

Stack Overflow用户
提问于 2013-12-04 18:52:53
回答 1查看 991关注 0票数 3

devise_mapping.registerable?devise_mapping.recoverable?....come从哪里来?我的意思是,我找不到他们的文件,也找不到关于他们的任何信息。

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

代码语言:javascript
复制
<%- if controller_name != 'sessions' %>
  <%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 19:54:09

当Rails服务器启动时,在devise gem代码中,lib/devise/Modes.rb调用所有可用模块的add_modulelib/devise.rb打电话给Devise::Mapping.add_module module_name。然后,lib/Designing.Rb使用以下代码构建像registerable?这样的方法:

代码语言:javascript
复制
# 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)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20383498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档