【问题标题】:How to customize devise form css in rails如何在rails中自定义设计表单css
【发布时间】:2013-03-10 04:07:10
【问题描述】:

命令rails generate devise:views\app\views\users下成功创建文件夹

我希望自定义设计表单,但不确定是否要将 css 放置在 application.css 中,或者我需要单独创建 user.css.scss。谷歌了一下并检查了 git doc,但没有指定设计中的 CSS 处理。

告诉我正确的处理方法

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 devise sass


    【解决方案1】:

    Devise 将使用您的默认布局。因此,您在 views/layouts/application.html.erb 中使用的 CSS 将在您生成的设计视图中使用。

    如果您想设计特定的布局,您可以创建一个views/layouts/devise.html.erb 文件,您可以在其中提供设计特定的 CSS。由于 Rails 命名约定,它会自动选择它。

    以上内容适用于任何控制器,只需在以控制器命名的布局中添加一个文件,例如。 views/layouts/reservations.html.erbReservationsController

    您还可以通过创建目录views/layouts/devise 并添加views/layouts/devise/registrations.html.erb 来为Devise::RegistrationsController 添加特定布局

    【讨论】:

      【解决方案2】:

      要生成设备视图,请运行此行

      rails generate devise:views
      

      对页面样式做任何你想做的事。

      阅读更多点击here

      【讨论】:

      • 我已经提到过......问题是......我正在寻找包含 css 的正确方法......让我知道你对它的想法:)
      • 您可以在任何 .css 文件中编写 css,它将适用于设计视图,然后您将其包含在 application.css 文件中。
      【解决方案3】:

      如果您正在制作特定于控制器的样式表,也就是说,如果您关闭了将所有样式表自动编译为 application.css,您应该在设计控制器之后命名您的样式表,例如:

      registrations.css.scss
      

      并将其添加到assets.rb 中的Rails.application.config.assets.precompile 列表中。

      样式表的位置是标准的,app/assets/stylesheets/,因此请注意设计的控制器与您的控制器之间的名称冲突。

      要在布局中获取特定于控制器的样式表,您需要以下内容:

      高达 4.1 的导轨

      <%= stylesheet_link_tag controller_name, media: 'all' if Rails.application.assets.find_asset("#{controller_name}.css") %>
      

      Rails 4.2+

      <%= stylesheet_link_tag controller_name, media: 'all' if asset_present?("#{controller_name}.css") %>
      
      # ...meanwhile, somewhere in the helpers...
      
      def asset_present?(name)
        # Rails 4.1 had Rails.application.assets filled out in all environments.
        # Rails 4.2 has it filled only when config.assets.compile == true which is only
        # in development by default.
        if Rails.application.assets.present?
          Rails.application.assets.find_asset(name)
        else
          Rails.application.assets_manifest.files.values.map { |v| v['logical_path'] }.include?(name)
        end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-09
        • 2011-09-05
        • 2011-10-02
        • 1970-01-01
        • 2012-09-28
        • 2018-05-27
        • 1970-01-01
        相关资源
        最近更新 更多