タグコントローラーで次のアクションを実行します:(params[:q]
このプラグインhttp://loopj.com/jquery-tokeninput/から取得)
def index
@tags = Tag.where("name like ?", "%#{params[:q]}%")
results = @tags.map(&:attributes)
@tag = Tag.find_by_name(params[:q])
if @tag.blank?
results << {:name => "Add: #{params[:q]}", :id => "CREATE_#{params[:q]}_END"}
end
respond_to do |format|
format.html
format.json { render :json => results }
end
end
この部分:
@tag = Tag.find_by_name(params[:q])
if @tag.blank?
results << {:name => "Add: #{params[:q]}", :id => "CREATE_#{params[:q]}_END"}
end
上記のコード行を作成して、現在のタグ名が存在しない場合にのみトリガーします。
問題は、ユーザーが入力に次のようなものを入力した場合です。
"programming " <- a trailing white space
" programming" <- a trailing white space
とにかくコードが実行されます。これは、末尾のスペースによってRailsが新しい名前であると見なすためです。
この問題に対処する最良の方法は何ですか?