0

制作チーム用にかんばんカードを作成して印刷するアプリがあります。部品番号に「#」記号が含まれるまで、すべてが正常に機能していました。私は調査し、そのサインがサーバーに戻らないことを述べているいくつかの関連する投稿を見つけました.

私の問題は、# 記号を含む部品番号が正しくクエリされないため、そのカードのバーコード イメージが表示されないことです。コードは次のとおりです。

<% if @card.area.name != "FG" %>
        <div style="text-align:center;"><%= image_tag "#{@card.part_no}" + "-" + "#{count}" + "-" + "#{@card.finish}" + "-" + "#{@card.card_index}" + ".png" %></div>
<% else %>
        <div style="text-align:center;"><%= image_tag "#{@card.part_no}" + "-" + "#{count}" + "-" + "#{@card.finish}" + ".png" %></div>
<% end %>

私は Rails は初めてで、Javascript や利用可能なさまざまなライブラリも初めてです。

@card.part_noajaxまたはjavascriptでその値を正しく取得する方法についての指示はありますか?

私の投稿が明確でない場合は申し訳ありませんが、助けていただければ幸いです。

ハイメ。

4

2 に答える 2

0

# を & や ^ のような部品番号に決して含まれないことがわかっているプレースホルダーに置き換えてから、サーバー側で次のように元に戻すことができます

$("card_from").submit( function() {
  card_no_element = $("card_no_input")
  var old_val = $(card_no_element).val();
  $(card_no_element).val(old_val.replace(/#/,"^"));
})

それからおそらくモデルで私は

Card << ActiveRecord::Base
  ...
  before_save :replace_carrots_with_dollars

  def replace_carrots_with_dollars
    self.part_no.gsub!("^","#")
  end

end

おそらくこれまでで最高のソリューションではありませんが、うまくいくはずです

于 2013-06-01T23:20:36.877 に答える
0

私の問題を解決したのは、ブラウザが # 記号をアンカーとして解釈しないように、url_encode メソッドを使用して URL をエンコードすることでした。

<div style="text-align:center;"><%= image_tag url_encode("#{@card.part_no}" + "-" + "#{count}" + "-" + "#{@card.finish}" + "-" + "#{@card.card_index}" + ".png") %></div>

これには次の手順が必要です。

2134323#1-1-6-ASDS.png

そして出力:

2134323%231-1-6-ASDS.png

したがって、アプリがアセットを正しく検出できるようになります。

助けに感謝します。これが他の誰かに役立つことを願っています。

ハイメ。

于 2013-07-01T23:37:19.900 に答える