application.html.erbファイルにフッターdivがあります。フッターの位置は相対的ですが、数ページではフッターの位置を固定として設定します。各ページにフッターコードを追加しなくても、どうすればいいですか?各ページで異なるフッタースタイルを使用するRuby on Rails
答えて
迅速かつ厄介な方法があるかもしれない、
プライベートの追加(おそらくあなたはすでにやった)部分
ページ/ _footer.html.erb
<div class='footer <%= @position||"relative" %>'>
Lorem ipsum
</div>
を作成しますメソッドをコントローラに送信します。
そして、(私はすぐに作成し、足場てきたように、私は唯一のアプリケーションのレイアウトをしました)あなたのレイアウトファイルでそれを参照するclass PagesController < ApplicationController
before_action :set_page, only: [:show, :edit, :update, :foo, :destroy]
before_action :fixed_footer, only: [:show, :edit, :mission, :vision]
def index
@pages = Page.all
end
def show
end
def foo
render 'show'
end
def about
render 'some_static_page'
end
def mission
render 'some_static_page'
end
def vision
render 'some_static_page'
end
.....
private
def fixed_footer
@position = "fixed"
end
# Use callbacks to share common setup or constraints between actions.
def set_page
@page = Page.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def page_params
params.require(:page).permit(:title, :email, :comments)
end
end
。
<!DOCTYPE html>
<html>
<head>
<title>Simpleapp</title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= yield %>
<%= render 'pages/footer' %>
</body>
</html>
これだけです。実際にすべてではなく、あなたがしなければならないのは、あなたのスタイルシートファイル内のある種のスタイルをfixed
とrelative
に与えることです。
結果:[index、show、new、foo、edit] 2と5は固定クラスです。
$ curl http://lvh.me:3000/pages | grep "div class='footer"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2815 0 2815 0 0 18599 0 --:--:-- --:--:-- --:--:-- 18642
<div class='footer relative'>
$ curl http://lvh.me:3000/pages/1 | grep "div class='footer"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2388 0 2388 0 0 16032 0 --:--:-- --:--:-- --:--:-- 16135
<div class='footer fixed'>
$ curl http://lvh.me:3000/pages/new | grep "div class='footer"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2833 0 2833 0 0 12242 0 --:--:-- --:--:-- --:--:-- 12264
<div class='footer relative'>
$ curl http://lvh.me:3000/pages/1/foo | grep "div class='footer"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2391 0 2391 0 0 16165 0 --:--:-- --:--:-- --:--:-- 16265
<div class='footer relative'>
$ curl http://lvh.me:3000/pages/1/edit | grep "div class='footer"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2959 0 2959 0 0 19393 0 --:--:-- --:--:-- --:--:-- 19467
<div class='footer fixed'>
しかし、静的ページの固定位置を設定したいのですか?あなたはそれを手伝ってもらえますか? – Kristis
それは同じです。私は私の答えを更新しました。ルートファイルを更新するのを忘れないでください。 p.s. @maxは既に良い、より多くのレールの方法の答えを投稿しました。あなたはそれを使用して、彼に感謝する必要があります - )) – marmeladze
あなたは<body>
または<html>
要素にクラスを追加することができます。
.users #footer {
height: 100px;
}
.users.show #footer {
height: 150px;
}
私はそれがそれを行うのRailsの方法であるとは言いません - 私はWordPressのテーマを実行し、控えめに使用から適応パターン。 – max
module ApplicationHelper
# takes an array or list of strings and makes a string suited
# for a html class attribute.
# @param [String*|Array] args
# @return [String]
def css_class(*args)
[*args].flatten.compact.join(" ")
end
end
<body class="<%= css_class(controller_name, action_name) %>">
これは、あなたが特定のコントローラやアクションにスタイルを添付できるようになります
あなたはo ActionView::Helpers::CaptureHelperを使用します。
module ApplicationHelper
def footer_tag(**kwargs)
klass = "some-default-class " + (content_for(:footer_class) || ""
content_tag(:footer, kwargs.merge(class: klass)) do
yeild if block_given?
end
end
end
# app/views/shared/_footer.html.erb
<% footer_tag do %>
<p>Copyright 2017, EvilCorp</p>
<% end %>
そして、あなたは、あなたの意見にprovide
またはcontent_for
を使用します。
<% content_for(:footer_class, "fixed") %>
<% provide(:footer_class, "fixed") %>
差がストレートレイアウトに後でフラッシュしばらくバッファへの最初のconcatsています完了したとして歩留まりをマークします。 application.html.erb
で
あなたは<body>
開始タグにアクセスし、例えばレストランのアプリケーションを持っている場合次に、あなたは多分index
とshow
とレストランコントローラを持っています。この<body class="<%= params[:controller] %>-<%= params[:action] %>">
のようなものにそれを変更することができます。
さて、これらのページに体が.restaurants-index
というクラスを持つことになりますし、.restaurants-show
あなたはSCSSを使用している場合は、
.restaurants-index {
.navbar {
position: fixed;
}
}
.restaurants-show {
.navbar {
position: relative;
}
}
ああ、申し訳ありません。私の答えは重複しているのが分かります。 –
- 1. Ruby on Railsを使用した異なる役割の管理
- 2. Ruby on Rails - 各スライスの要素が異なります
- 3. ruby on railsでグリットを使用する
- 4. Ruby on Railsでソーシャルメディアサインアップを使用する
- 5. はRuby on Railsで異なるテーブルからのメソッドを使用する方法
- 6. Ruby on Railsアソシエーションを使用するか使用しないか
- 7. Ruby on Railsを - 静的なページ
- 8. Ruby On Railsのバージョンが異なるのはなぜですか?
- 9. Ruby on Rails、クラスメソッドの使用?
- 10. Ruby on Rails内のコントローラ内の異なる環境に異なるオブジェクトを使用するには?
- 11. Ruby on Rails 3のRuby on Rails Ajaxスキャフォールドジェネレータはなんですか?
- 12. Ruby on RailsページでJavascriptコードをJSONファイルに追加して使用する
- 13. Ruby on Railsでキュウリを使って動的なページをテストする方法
- 14. Ruby on Railsサブスクリプション用にストライプを使用
- 15. は、Ruby on Railsでの使用PostgreSQLの
- 16. Ruby on Rails 3を使用して削除確認ページを作成する
- 17. 各ショーページの色をカスタマイズする - ruby on rails
- 18. Ruby on Railsを使用する理由は何ですか?
- 19. ruby on railsを使用してjsonでエラーメッセージを送信する
- 20. Ruby On Rails - スコープでHAVINGを使用してJOINをカバーする
- 21. Ruby On Railsビジネスロジックを使用したルーティング
- 22. integration_testを使用したRuby on Railsテスト
- 23. REST APIを使用したRuby on Rails
- 24. Ruby on Railsアプリ用にVPSを設定する...使用するRubyのバージョンは?
- 25. Ruby on Rails 3.2でEqually == 0を使用する
- 26. Ruby on Railsでの認証、パスワードの使用を禁止する
- 27. Ruby on Railsアクションでダッシュを使用する
- 28. Ruby on RailsでPhotobucket APIを使用する
- 29. ruby on railsのimage_tagヘルパーで複数のクラスを使用する
- 30. Ruby on RailsでFirebaseを使用するには?
はあなたがルールを持っていないと言うことができますか?例えばpage1、page2、page3の場合は相対的になり、残りは修正されますか? – marmeladze
ページごとに異なるレイアウトを作成することができます –
どうすればよいか分かりません。それについて私にもっと情報を教えてください。 – Kristis