我正在创建一些用户可以单击以填充文本区域的消息建议。显示时,通用字符串必须与用户的详细信息一起呈现。
这是我想要做的,但这个例子使用了 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 %>
我正在尝试在渲染之前将 ruby 代码添加到视图中。大概是个愚蠢的想法。
这是在 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>