私はacts_as_taggable_on gemを使用しています: https://github.com/mbleigh/acts-as-taggable-on
このジェムは、ユーザーによるタグの入力をカンマ区切りで受け入れます。つまり、Clever、Cool、Joyful です。
タグを要求する部分: shared/_micropost_form があります。
<%= form_for(@micropost) do |f| %>
<%= f.text_field :tag_list, placeholder: "Tags", id: "genre_tag_field" %>
<% end %>
ただし、#Happy #Drunk や #Stupid、#Drunk などのハッシュタグを付けてタグを入力するユーザーもいます。
マイクロポストが作成される前に、入力された :tag_list をチェックして、各単語が # で始まるかどうかを確認し、その場合は # を削除して , (既に , がある場合を除く) を最後に追加するようにするにはどうすればよいですか?各単語。したがって、ユーザーが #Happy #Drunk と入力すると、タグは自動的に Happy、Drunk として保存されます
マイクロポスト モデル:
acts_as_ordered_taggable
マイクロポスト コントローラー:
def create
@user = User.find(params[:user_id])
@micropost = @user.microposts.build(params[:micropost])
if @micropost.save
flash[:success] = "Posted!"
redirect_to :back
else
flash[:notice] = "Error!"
redirect_to :back
end
end
ありがとう、助けてくれてありがとう。宝石を投げずにこれは可能ですか?