1

回答済み

私は実際に質問を作成しているときに答えを見つけましたが、これが役立つと思う人もいるので、とにかく投稿しています(ここで述べたように:https ://meta.stackexchange.com/questions/49922/should-i-continue-adding- a-question-if-i-have-found-the-answer-myself

ROR3のファイルフィールドにサイズを追加するのに問題があります。これが私の構文です:

= f.file_field :file, :size => "11"

これは表示されませんが、次のファイル入力フィールドを作成します。

<input type="file" name="soap_test_zip_file[file]" id="soap_test_zip_file_file">

今、私は以前にそれを機能させたことを知っているので、いくつかの古いコードを調べて、これを見つけました:

= file_field_tag :file, :size => 11

これを出力します:

<input type="file" size="11" name="file" id="file">

これで正しいサイズになりますが、ファイルIDと名前が間違っています。だから私はこれを試しました:

<input type="file" size="11" name="soap_test_file_file" id="soap_test_file_file">

これは私に正しいIDを与えますが、間違った名前です。質問は、そのfile_fieldをサイズで再現するにはどうすればよいですか?

Ryan Biggによるこの回答を調べました:Ruby onRails3を使用して「file_field」の「size」属性を表示する際の問題

そして彼は、ファイルフィールドを異なる方法でレンダリングするのはクロスブラウザのことだと言っています。その場合ですが、ブラウザで処理できる場合は、短いファイルフィールドをレンダリングしたいと思います。

4

3 に答える 3

2

私が使用した:

= file_field_tag :soap_test_zip_file, {:name => 'soap_test_zip_file[file]', :size => 11}

これにより、名前(コントローラーの場合)とサイズを上書きしました

于 2011-04-14T07:54:37.487 に答える
0

私にはうまくいかないようです。

私は別の選択肢を考えました:jquery..

$('#user_photo_photo').attr('size', 1);

ビンゴ!!

于 2011-06-02T04:17:58.143 に答える
0

name属性を書き直したくない場合は、次のようにすることができます。

フォームを保持する

= f.file_field :file, :size => "11"

file_fieldメソッドのオーバーライドを追加します

# lib/my_override.rb

module ActionView
  module Helpers
    module FormHelper   
      def file_field(object_name, method, options = {})
        InstanceTag.new(object_name, method, self, options.delete(:object)).to_input_field_tag("file", options.update({:size => options[:size]}))
      end
    end
  end
end

そして、イニシャライザを介してロードします

# config/initializers/load_lib.rb    

require 'my_override'
于 2013-01-06T13:02:28.917 に答える