小编Aks*_*ade的帖子

Rails Carmen从代码中获取国家名称和州名称

我正在使用Carmen gem在Rails中渲染一个国家/地区.该国家/地区作为代码存储在数据库中.如何从此代码中获取"全名"?

宝石'carmen-rails','〜> 1.0.0.beta3'

<%= f.country_select :country, prompt: 'Please select a country' %>
Run Code Online (Sandbox Code Playgroud)

我尝试了几种选择,到目前为止还没有一种方法可行!例如:

Carmen::country_name(@profile.country)
Run Code Online (Sandbox Code Playgroud)

导致错误:

卡门的未定义方法`country_name':模块

第二次尝试:

在profiles_controller中:

@profile = Profile.find(params[:id])
@country = Carmen::Country.named( @profile.country )  
Run Code Online (Sandbox Code Playgroud)

在配置文件索引视图中

<%= @country.official_name %>
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

未命名的方法`official_name'代表nil:NilClass

为什么我的应用程序失败了?

ruby-on-rails carmen

3
推荐指数
1
解决办法
3645
查看次数

omn​​iauth.auth for Facebook没有返回完整哈希,也无法成功登录Facebook

我正在研究来自http://www.theodinproject.com/ruby-on-rails/final-project的facebook克隆项目.

我被omniauth-facebook部分困住了,我无法成功登录facebook.我认为问题可能是由于request.env ["omniauth.auth"].当我尝试提出request.env ["omniauth.auth"].to_yaml时.我得到以下不完整的哈希.它缺少很多信息,例如first_name,last_name,gender等.

--- !ruby/hash:OmniAuth::AuthHash
provider: facebook
uid: &#39;10206926404981253&#39;
info: !ruby/hash:OmniAuth::AuthHash::InfoHash
  name: Thomas Pan
  image: http://graph.facebook.com/10206926404981253/picture
credentials: !ruby/hash:OmniAuth::AuthHash
  token: <token>
  expires_at: 1442277104
  expires: true
extra: !ruby/hash:OmniAuth::AuthHash
  raw_info: !ruby/hash:OmniAuth::AuthHash
    name: Thomas Pan
    id: <id>
Run Code Online (Sandbox Code Playgroud)

**用<>替换了一些信息以确保安全性.

我也在使用它和设计.

其他所有东西似乎都设置正确,因为我按照这里的说明进行设计和omniauth-facebook.https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

user.rb

devise :database_authenticatable, :registerable,
   :recoverable, :rememberable, :trackable, :validatable,
   :omniauthable, :omniauth_providers => [:facebook]

def self.from_omniauth(auth)
  where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
    user.email = auth.info.email
    user.password = Devise.friendly_token[0,20]
    user.first_name = auth.info.first_name
    user.last_name = auth.info.last_name
    user.gender = auth.extra.raw.gender
  end  
end  
Run Code Online (Sandbox Code Playgroud)

devise.rb

config.omniauth :facebook, …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise omniauth omniauth-facebook

1
推荐指数
1
解决办法
2166
查看次数

React-rails:带有 { prerender: true } 问题的组件

我在一个项目中使用 react-rails gem。

每当我在 react_component 助手中传入 {prerender: true} 时,我都会收到此错误:

预渲染 UsersList 时遇到错误“ReferenceError: ReactDOMServer is not defined”

ruby-on-rails reactjs react-rails

1
推荐指数
1
解决办法
2006
查看次数