0

文字列を取り、この文字列の個々の単語をマップし、比較して、関連するデータベースの事前定義された文字列と一致する場合は、その単語を置換する必要最小限の概念を Ruby on Rails で構築しようとしています。

例: ユーザーがテキスト フィールドに入力する「Lol と Brb の意味は何ですか?」送信ボタンを押します。このアクションは、"lol" と "brb" を "laughing out loud" と "be right back" に変更した同じテキストを返します。

これまでのところ、データベースに文字列を格納するユーザー入力用の Post モデルとテーブルがあります。

「lol」と「brb」を参照する「lol」と「brb」を参照する「大声で笑う」と「すぐに戻る」を持つAcronym_Translateモデルとテーブルへの外部キー参照を使用して、データベースに保存された「lol」と「brb」を持つ頭字語モデルとテーブルがあります"、 それぞれ。

Post モデル/テーブルを Acronym モデル/テーブルに接続して、Post の文字列を比較し、Acronym モデル/テーブルの文字列に置き換えるにはどうすればよいですか? そして、どのコマンドがそのような機能を実現できますか? gsubでしょう!メソッドはここで機能しますか?

どんな助けでも大歓迎です!

4

1 に答える 1

0

Post テーブルを Acronym テーブルに接続しますか? これは、投稿内の頭字語の各インスタンスを特定して記録を保持する必要があることを意味します.

多対多の関係を使用してこれを行うことができます。または、各頭字語の出現に関する追加データを保存する場合は、AcronymPost という名前のリンク テーブルを作成し、Post と Acronym の間の has many through 関係を使用する必要があります。投稿値を解析し、投稿で頭字語を特定する場合は、これをデータベースに記録してから、gsub を使用して投稿値を頭字語に置き換える必要があります。

頭字語の表を反復して (string).include? を使用できます。投稿で発生するかどうかを確認する方法。最後に、gsub コマンドを使用して、頭字語をその翻訳に置き換えることができます。

于 2015-12-14T14:23:30.187 に答える