0

顧客のTwitterハンドルが空白の場合、デフォルトで別のTwitterハンドルに設定します。この例では、デフォルトのハンドルが@googleであるとしましょう。

twitter_handle = customer.twitter_name 
#add @ sign if user name doesn't have it
twitter_handle = '@' + customer.twitter_name.gsub.to_s('@', '') unless twitter_handle.blank?

tape_name = name.truncate(27)

"I just bought #{twitter_handle} product}"

私は試した:

twitter_handle = customer.twitter_name || "@google"
twitter_handle = '@' + customer.twitter_name.to_s.gsub('@', '')

私はそれをコメントアウトするとそれが機能するので、エラーがこの行に関係していることを知っています:

twitter_handle = '@' + customer.twitter_name.to_s.gsub('@', '')

ユーザーハンドル全体を切り取り、空白を返します。

tape_name = name.truncate(27)

"I just bought #{twitter_handle} product}"

しかし、私はこのエラーを受け取ります:

Sorry, that page does not exist:
 Twitter::Error::NotFound in ProductsController#download 
4

1 に答える 1

1

これを試してみてください:

コード

twitter_handle = customer.twitter_name ||= '@google'
twitter_handle[/^@/] ? nil : twitter_handle = "@#{twitter_handle}"

'@'なしのテスト

1.9.3p194 :001 > twitter_name = 'bjernigan52' #Set without '@' sign
 => "bjernigan52" 
1.9.3p194 :002 > twitter_handle = twitter_name ||= '@google'
 => "bjernigan52" 
1.9.3p194 :003 > twitter_handle[/^@/] ? nil : twitter_handle = "@#{twitter_handle}"
 => "@bjernigan52" 
1.9.3p194 :004 > puts twitter_handle
@bjernigan52
 => nil 

'@'によるテスト

1.9.3p194 :001 > twitter_name = '@bjernigan52'  #Set with '@' sign                                   
 => "@bjernigan52" 
1.9.3p194 :002 > twitter_handle = twitter_name ||= '@google'                       
 => "@bjernigan52" 
1.9.3p194 :003 > twitter_handle[/^@/] ? nil : twitter_handle = "@#{twitter_handle}"
 => nil 
1.9.3p194 :004 > puts twitter_handle                                               
@bjernigan52
 => nil 
于 2012-08-02T04:52:30.350 に答える