1

クライアントがレコードを 2 列で表示することを希望するサイトがあります。いくつかのスコープを作成し、ページで 1 つの列を奇数レコードを返すように設定し、もう 1 つの列を偶数レコードを返すように設定しました。

これらは私のスコープです:

scope :odd, -> { where("id % 2 = ?", "0") }

scope :even, -> { where("id % 2 = ?", "1") }

動作しているように見えますが、a) これは適切で安全な構文ですか? b) 奇数と偶数の ID 番号を簡単に選択する方法はありますか?

4

3 に答える 3

2

Ruby ソリューションも可能ですが、CSS を使用する方が適切です。これは、機能が主にプレゼンテーションの問題であるためです。

違いをさらに指摘するために、クライアントが戻ってきて、4 列のディスプレイが必要な場合はどうすればよいでしょうか?


次のような表示を実現するには

record 1 | record 2
record 3 | record 4
record 5 | record 6

HTML

<ul id="double">
  <li>CSS</li>
  <li>XHTML</li>
  <li>Semantics</li>
  <li>Accessibility</li>
  <li>Usability</li>
  <li>Web Standards</li>
  <li>PHP</li>
  <li>Typography</li>
  <li>Grids</li>
  <li>CSS3</li>
  <li>HTML5</li>
  <li>UI</li>
</ul>

CSS

ul{
  width:600px;
  margin-bottom:20px;
  overflow:hidden;
  border-top:1px solid #ccc;
}
li{
  line-height:1.5em;
  border-bottom:1px solid #ccc;
  float:left;
  display:inline;
}
#double li  { width:50%;}       /* 2 col */
#triple li  { width:33.333%; }  /* 3 col */
#quad li    { width:25%; }      /* 4 col */
#six li     { width:16.666%; }  /* 6 col */

デモ: http://jsfiddle.net/KnXEc/

詳細: http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/

于 2013-06-14T15:30:53.707 に答える
0

奇数 ID と偶数 ID でレコードを取得することが本当にやりたいことであれば、解決策は問題ありません。私の知る限り、それは頻繁に行われるわけではないので、近道はありません。

考慮すべきことの 1 つは、レコードの削除を開始すると、列が不均衡になる可能性があることです。ただし、それはあなたにとっては問題ではないかもしれません。

于 2013-06-14T13:53:56.843 に答える