8

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

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

告诉我正确的处理方法

4

3 回答 3

12

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

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

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

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

于 2013-03-20T20:47:39.680 回答
5

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

registrations.css.scss

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

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

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

高达 4.1 的导轨

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

导轨 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
于 2015-10-21T09:38:32.153 回答
2

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

rails generate devise:views

并使用页面样式做任何你想做的事情。

阅读更多点击这里

于 2013-03-21T11:13:51.923 回答