【问题标题】:Variable formatting in Link_toLink_to 中的变量格式
【发布时间】:2015-08-12 01:05:31
【问题描述】:

我希望将一个十六进制值从一个字段中提取到 rails 的 link_to 行。我找到了如何按照以下格式格式化标准链接

 <td><%= link_to 'Show', security, {:style=>'color:#FF6A00;', :class => 'css_class'} %></td>

我希望根据特定记录使颜色成为更改值。我知道这是面对典型的 css 格式。我不想在 css 文件中进行颜色评估,因为将使用很多很多颜色。我可以使用以下代码使标准文本更改颜色

<td style="color:#<%= security.subcategory.color %>"><%= security.subcategory.color %></td>

由于某种原因,这种方法在 link_to 行中不起作用。我确定我缺少这种代码格式。我确定我在格式化内联链接时遗漏了一些东西。

感谢您的帮助

【问题讨论】:

  • 有点困惑......在一个代码块中,您正在为链接设置样式,但在另一个代码块中,您正在为实际的&lt;td&gt; 元素设置样式。你能再澄清一下你的意图吗?谢谢!
  • 观察力不错。确实,我正在尝试对 TD 标记中的文本进行样式化,而不是对整个元素进行样式化。我可以将颜色应用于整个单元格,但我真正想要的只是 link_to 文本。当我检查 chrome 中的元素时,它显示 AAPL
  • 谢谢!刚刚添加了一个答案...希望对您有所帮助:)

标签: css ruby-on-rails


【解决方案1】:

TD的颜色默认不继承给链接。

检查:CSS a:link keep original color

【讨论】:

  • 谢谢,这确实可以让 TD 标签中的所有内容都获得新颜色,但是有没有办法让它只将颜色应用于 link_to 跨度中的内容?
【解决方案2】:

假设您没有尝试在 DOM 加载后动态更改链接的颜色,那么您的代码非常接近,您应该能够将上面的两个代码 sn-ps“组合”为:

<td><%= link_to 'Show', security, { style:"color:##{security.subcategory.color};", class: 'css_class'} %></td>
# note that the double pound sign (##) is intentional. 
# The first is for your actual CSS declaration 
# The second is part of Ruby's string interpolation so that security.subcategory.color is rendered in the style option

此代码 sn-p 应该为链接而不是表格单元格着色。

【讨论】:

  • 在这种情况下,我是否应该在颜色十六进制代码字段的值中包含#?换句话说,除了作为变量存储的“#FF6A00”之外,是否应该有你建议的##?
  • 我的错!如果您的数据库字段中有#,则不需要双#s。对于那个很抱歉。我应该在我的回复中说清楚。如果您的数据库 not 具有完整的十六进制值(即 #FF0000),则您只需要双 #s。
  • 克雷格,你是一个学者,一个绅士!我欠你一杯成人饮料。做到了!
猜你喜欢
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多