ruby-on-rails
  • ruby
  • bootstrap-4
  • 2017-10-26 4 views 0 likes 
    0

    ブートストラップのツールチップに動的レコードを表示する必要があります。 ブートストラップのツールチップでHTMLを使用できますが、Rubyコードを使用するとエラーが発生します。ブートストラップのツールチップのタイトルでRubyの構文を使用するには?

    "<a data-toggle='tooltip' data-placement='right' data-html='true' data-original-title=' 
    <h5>Title for #{label} file</h5> 
    <% users.each do |user| %> 
        <div class=row> 
         <div class=col-sm-6> 
          #{user.name} 
         </div> 
         <div class=col-sm-6> 
          <div class=rectangle id=#{status}> 
           #{user.id)} 
          </div> 
         </div> 
        </div> 
    <%end%>' 
    href='/link'>Right tooltip</a>" 
    

    users.eachループが使用されていない場合はすべてが、このコードでは正常に動作しますが、次のように私のコードサンプルがあります。それは、ユーザーがそれにすべてのレコードを持っているが、私はエラー

    NameError: undefined local variable or method 'user'.

    を取得しています使用されている場合

    。問題は、Rubyの構文を認識していないことです。

    +0

    どのようにそのツールチップコードを使用しますか? –

    +0

    このコードはデコレータのメソッドで記述され、そのメソッドは値として​​ –

    +0

    という名前で表示されます。なぜそのような不思議な作業をしたいのですか? – krishnar

    答えて

    1

    and that method gets called in view as a value of <td>

    このように見えますか?

    <td><%= decorator.bootstrap_html %></td> 
    

    あなたは自分自身でERBを渡す必要があります。このようなもの:

    <td><%= ERB.new(decorator.bootstrap_html).result(binding) %></td> 
    

    おそらく、これを行うデコレータです。 usersが範囲内にあり、#{user.name}を適切なERBの<%= user.name %>に置き換えてください。

    +0

    ERB.new(decorator.bootstrap_html).result(binding)素晴らしいソリューションです。 –

    0
    ERB.new("<a data-toggle='tooltip' data-placement='right' data-html='true' data-original-title=' 
    <h5>Title for #{label} file</h5> 
    <% users.each do |user| @user = user %> 
        <div class=row> 
         <div class=col-sm-6> 
          <%= @user.name %> 
         </div> 
         <div class=col-sm-6> 
          <div class=rectangle id=#{@user.status}> 
           <%= @user.id %> 
          </div> 
         </div> 
        </div> 
    <%end%>' 
    href='/link'>Right tooltip</a>").result(binding) 
    

    これは作業コードです。

    関連する問題