1

私は Ruby on Rails にまったく慣れていないので、カスタム CSS ファイルを Devise (サインアップ ビュー) に配置したいと考えていました。グローバル CSS を application.js (アセット パイプライン) に配置し、2 つのヘルパー関数を配置しました。

helpers/application_helper.rb

  def javascript(*files)
    content_for(:head_javascript) { javascript_include_tag(*files) }
  end

  def stylesheet(*files)
    content_for(:head_stylesheet) { stylesheet_link_tag(*files) }
  end

そして私のビュー/レイアウト/application.html.erb

<!DOCTYPE html>
<%
   if (controller.controller_name == "sessions") && (controller.action_name == "new")
     javascript 'theme/signup'
     stylesheet 'theme/signup'
   end
%>

<html>
<head>
  <title>Mysite</title>
  <!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
  <![endif]-->
  <%= yield(:head_stylesheet) %>
  <%= stylesheet_link_tag    "application",  :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= yield(:head_javascript) %>
  <%= csrf_meta_tags %>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<%= yield %>
</body>
</html>

次に、Devise ビューを生成し、Twitter のブートストラップ フォームを調整しました。 rails generate devise:views

そして今、 signup.cssをサインアップ ビュー内に配置したいのですが、どうすればよいでしょうか?

そこで、ヘルパー メソッドを使用するために、Devise コントローラーを作成しました。

bash <(curl -s https://raw.github.com/foohey/cdc/master/cdc.sh)

ヘルパーが次の作業をしていないため、今は行き詰まっています。

<%
   if (controller.controller_name == "sessions") && (controller.action_name == "new")
     javascript 'theme/signup'
     stylesheet 'theme/signup'
   end
%>

レールでカスタム css ファイルを処理する簡単な方法はありますか? 私はアセット パイプラインの概念に不慣れで、少し混乱しています。

手伝ってくれてありがとう。

4

3 に答える 3

1

カスタム css ファイルを public ディレクトリ内の css ディレクトリと<head>、カスタム css ファイルを配置するビューのタグ内に配置できます。

<%= stylesheet_link_tag '/css/signup' %>

signup.css、stylesheet_link_tag を配置する場所であると仮定して、サインアップ ビューでのみ使用できます。

于 2013-09-09T13:10:12.243 に答える