문제

#item

id = "항목"으로 div를 만듭니다.

.box#item

클래스 = "box"및 id = "item"으로 div를 만듭니다.

.box#="item "+x

class = "box"와 주석 '#= "항목"+x'로 div를 만듭니다.

.box#
  ="item"+x

"불법 요소 : 클래스와 ID에는 값이 있어야합니다."

ID를 변수로 설정하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

두 가지 방법이 있습니다.

긴 형태의 방식 (ID를 일반 속성처럼 정의) : :

.box{:id => "item_#{x}"}

이것을 생성합니다 (x 그 어느 때보 다 x.to_s 평가) :

<div class="box" id="item_x">

짧은 형태 :

.box[x]

다음을 가정합니다 x 인스턴스입니다 item:

<div class="box item" id="item_45">

참조 Haml Reference 자세한 내용은.

다른 팁

당신은 설정할 수 있습니다 id 그리고 class Haml에서 다음 방법

  1. 정상적인 방법

    .box.item#item
    
    <div id="item" class="box item"></div>
    
  2. 보간이 필요한 경우이 형식을 사용할 수 있습니다.

    .box{id: "item_#{123}", class: "item_#{123}"}
    
    <div id="item_123" class="box item_123"></div>
    
  3. 이 형식은 객체 참조를 사용하여 클래스와 ID를 생성합니다.

    # app/controllers/items_controller.rb 
    @item = Item.find(123)
    
    .box[@item]
    
    <div id="item_123" class="box item"></div>
    
  4. 무언가를 접두사해야한다면

    .box[@item, :custom]
    
    <div id="custom_item_123" class="box custom_item"></div>
    
  5. 사용자 정의 클래스 및 ID 생성이 필요한 경우 다음 방법을 모델링해야합니다.

    class CrazyUser < ActiveRecord::Base
      def haml_object_ref
        "customized_item"
      end
    end
    

    그리고 당신은 맞춤형 클래스를 얻게됩니다

    .box[@item]
    
    <div id="customized_item_123" class="box customized_item"></div>
    

나타내다:

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top