2017-09-26 5 views
-1

私は電子メール、タイトル、slug、..etc.のような属性を持つニュースモデルを持っています。私はvisitors_controller内のメソッド内のオブジェクトのslug属性にアクセスしたい。レールコンソールでRailsオブジェクトの属性値がコントローラでアクセスする際に変更されています

、スラグ属性の値は、結果が

2.3.3 :002 > @news = News.order(created_at: :asc).last(1) 

があるさ:

slug: "north-korea-threatens-to-shoot-down-u-s-warplanes" 

私はまた私のデータベース

select slug from news where id = xxx; 

にスラグ値をチェックします結果:

north-korea-threatens-to-shoot-down-u-s-warplanes 

スラッグの値に「」が追加されています。 。 。「コントローラにおける方法の内側にアクセスしている間。

class VisitorsController < ApplicationController 

    def getSlug 
    @news = News.order(created_at: :asc).last(1) 

    @news.each do |news| 
    slug = news.slug 

# raise slug.to_yaml 
    end 
    end 

私はそれを上げた場合、スラグ値で

--- north-korea-threatens-to-shoot-down-u-s-warplanes ... 

getSlug.html.erb

<% @news.each do |bubble_gum| %> 
<tr> 
    <td><%= bubble_gum.title %></td> 
    <td><%= bubble_gum.slug %></td> 
</tr> 
    <% end %>  

ありますスラグに(...。)を付けずにスラグの値が正しく表示されます

追加されたコンテンツ()を持たないスラッグ属性の値を取得する方法を教えてください。 。 。)をコントローラ内のメソッド内に挿入します。

非常に感謝しています。事前に感謝します!

+1

'.to_yaml'とは何ですか?なぜあなたはそれが必要だと思いますか? –

答えて

2

これはActiveRecordクエリとは無関係で、コントローラ内にありません。

...あなたは、単に YAMLに文字列を変換することによって引き起こされ見ている:

"north-korea-threatens-to-shoot-down-u-s-warplanes".to_yaml 
    # => "--- north-korea-threatens-to-shoot-down-u-s-warplanes\n...\n" 

wikipediaから:

3つのピリオド(...)を、必要に応じてストリーム内の文書を終了します。コントローラで

は、YAML(raise slug.to_yaml)に文字列に変換され、ビューでは、単に直接(<%= bubble_gum.slug %>)の文字列を表示しています。だからあなたは違いを見ているのです。

+0

私の間違いを明確にしていただきありがとうございます。 – suresh

関連する問題