2017-04-21 10 views
0
Rails 3.2 

SLIMを使用するRailsアプリケーションを継承しました。私は、SLIMの上速度まで取得しようとしていますが、私は、ビュー内の文の一つで少し問題を抱えています:Railsでスリムビューを解読しようとしています

= f.select :location_ids, locations, {}, { multiple: true} 

これは、あなたが別の場所から選択することができ、フォームの一部です。

:locations_idアレイを

位置を戻しますから選択する位置を含む配列である(それはコードで計算されますどこで知っている)

{複数:真}は、ユーザが複数の選択を行うことを可能にします

  1. 追加の電子概要:falseに設定している場合、それは単一選択

    質問のカップルにそれを制限しますmpty {}は?

  2. ユーザが1つの選択だけを行う場合、:location_idsは常に配列として返されますか?

編集:

は、元の使用:

= f.select :location_ids, locations, {}, { multiple: true} 

は、ここで私はのparamsで得たものだ:

.... "location_ids" => [ ""、 " 1407948222_686938_location "]

アレイ、

私はそれを変更

:ここ

= f.select :location_ids, locations, {}, { multiple: false} 

は、私がのparamsで得たものだ:

"location_ids"=>"1450908309_866831_location" 

文字列。そのことについて申し訳ありません明確化のため

答えて

0

編集は、私は途中で私の答えを書いても気を取られました:

まず、ええ{}何もしません。これはドキュメントの「オプション」の場所なので、そこにはinclude_blank: trueのようなものを置くことになりますが、空のハッシュなので何も起こりません。通常は私はそれにnilをつけるか、それを空白のままにします。

2番目の質問では、以下のコメントで述べたように、複数のtrueが配列として送信され、falseが文字列として送信されます。 Nothinはあまりにもファンシーです。より広範なノートで

、スリムは、最終的にhtml.erbファイルにコンパイルするので、あなたは本当にただ単に「クリーンアップ」

<%= f.select(:location_ids, locations, {}, { multiple: true}) %> 

を見ています。

+1

質問#2は、私がそれをfalseに変更した場合に起こることでした。私は今答えを知っている、それは配列ではなく文字列として提出されます。質問#1では、私は空の{}が第3のパラメータとして何をするのかを理解しようとしていました。 – EastsideDeveloper

関連する問題