0

我的 Rails 3.2.3 表单中有以下 collection_select 逻辑来选择状态并按名称排序。

<%= collection_select(:user, :state_id, State.order('name'), :id, :name) %>

我有一个国家模型,其中 ID 在国家模型中。我的用户模型有 country_id 和 state_id。用户属于国家和州。国家有很多用户,也有很多州。国家属于国家。

我只想为特定国家/地区选择州。我想将 User 模型中的 country_id 与 State 模型中的 country_id 匹配。我考虑过使用State.where('something;).order('name')。但是我不知道如何为此编写 SQL 代码。我正在使用 PostgreSQL 数据库。我发现的示例是针对其他数据库的。

第二个问题与列表的外观有关。我想更改背景颜色和字体颜色以匹配我网站上的输入字段。我尝试了以下代码,但无法正常工作。

<%= collection_select(:user, :state_id, State.order('name'), :id, :name, {:class=>'collection-select-class'})  %>

我的 CSS 代码是:

.collection-select-class {
  background-color: #333333;
  color: @yellow;
}

我也尝试使用选项标签,但它没有改变任何东西。

任何帮助,将不胜感激。

4

2 回答 2

0

CSS 目前不支持该功能。

看这里:

HTML <select> 选择的选项 background-color CSS 样式

于 2013-03-05T12:26:37.740 回答
0

对于这个问题的 CSS 相关部分,我参考下面的链接回答:

https://stackoverflow.com/a/1947675

简而言之,您需要添加空哈希 {} 才能使其工作。所以它会像:

<%= collection_select(:user, :state_id, State.order('name'), :id, :name, {}, {:class=>'collection-select-class'})  %>

希望这可以帮助!

于 2017-09-02T22:53:53.650 回答