ユーザーがクリックしてテキスト領域に入力できるメッセージの提案をいくつか作成しています。表示される場合、一般的な文字列はユーザーの詳細とともにレンダリングする必要があります。
これは私がやろうとしていることですが、この例では、データベースから取得されていない html コード化されたメッセージを使用しています:
<ul>
<li><a><%= "#{@user.name} is the best" %></a></li>
<li><a><%= "#{@user.name} is the worst" %></a></li>
<li><a><%= "I think #{@user.name} is the best" %></a></li>
<li><a><%= "I think #{@user.name} is the worst" %></a></li>
</ul>
データベースに「プレースホルダー」を使用して一般的な文字列を保存し、ビュー内の値のみを計算できるようにしたいと考えています。
これは、データベース(シードファイル)に文字列を作成しようとした方法です
Suggestion.create(message: '#{@user.name} is the best')
Suggestion.create(message: '<%= #{@user.name} %> is the best')
Suggestion.create(message: '<%= @user.name %> is the best')
ビューでは、反復があります
<%= suggestion.message %>
ビューがレンダリングされる前に、ルビー コードをビューに追加しようとしています。おそらくばかげた考えです。
これはhtmlソースに表示されるものです
<%= @user.name %> is the best
<%= #{@user.name} %> is the best
#{@user.name} is the best
これは似たようなものですが、変数が各メッセージ内の異なる場所にあるため機能しないメッセージを追加します。
<ul>
<% @suggestions.each do |message| %>
<li><a><%= "#{@user.name} message" %></a></li>
<% end %>
</ul>