![]() |
1
5
这个代码对我来说很好 国 列。 在我的模型上:-
格式为:-
|
![]() |
2
0
你的问题还不够,有些地方应该出错。 第一
在这种方法中,你应该明确
第二
更新:
您有一个字符串的country列。
使命感
我不知道你期望什么。
如果您在国家栏中有国家名称,而不是ISO代码。使用
|
![]() |
3
0
看起来答案将是你之前尝试的某种组合。 Country_select使用国家代码而不是国家全名:
这显示在该宝石的github页面上: https://github.com/stefanpenner/country_select 由于select返回国家代码,因此我们可以假设国家属性将是国家代码而不是完整的国家名称。 考虑到这一点,我们将修改前面的答案:
最好的做法是避免创建与该模型中的属性同名的变量,所以在测试中使用iso_country而不是country。 您遇到的问题是,当您将ISO3166::Country对象指定给对象的属性(self.Country=ISO3166::Country[Country])时,并不是将ISO3166::County对象本身指定给该属性,而是将ISO3166::Countary对象的名称指定给它。 我在Rails控制台中测试了这一点:
如您所见,它为属性指定了国家名称(而不是国家对象)。因此,当您尝试访问国家时。翻译或国家。name将抛出一个错误,因为它正在访问address属性而不是country对象。所以一定要保持变量名与属性名不同。 最后一件事,如果您有国家名称,那么使用find_country_by_name方法代替find_by_name,因为find_byname将返回一个数组,而find_cuntry_by-name将返回country对象。这在您当前的场景中不应该是必需的,但是如果您以后需要使用它,请记住这一点。 |