0

オープンソースプロジェクトのバグとアップデートのタイムラインを作成しようとしています。私はルビーに不慣れですが、徐々に経験を積んでいます。

モデルに次のコードを使用して、historical_gemsというテーブルを作成しました。

class HistoricalGem < ActiveRecord::Base
  attr_accessible :build_date, :version
  belongs_to :ruby_gem, :foreign_key => :gem_id
end

2つのフィールド名(日付には「start」、日付には「content」)を持つオブジェクトを必要とするJSプラグイン(http://almende.github.com/chap-links-library/js/timeline/doc)を使用しています。 title)をJSON配列に追加して、JSを使用してタイムラインを表示します。

JSONをレンダリングするためのタイムラインメソッドを定義するコントローラーで、次のようなことを行う必要があると思います。

def timelinem
@name = params[:id]
@rpm = AbcTable.find_by_name(@name)
respond_to do |format|
  format.json { render :json => @rpm.json_timelines }
   end
end

次に、モデル内で「json_timelines」メソッドを定義する必要があります。おそらく次のようになります。

def json_timelines(gems = [])
    dates = []
    gem_id.each { |p|
        gems << p
        dates << p.build_date(gems)
    end
   }
 end

私はRoRから始めたばかりで、ガイドやチュートリアル、デバッグを何時間も行った後でも、このコードをまとめることはできません。誰か助けてもらえますか?私はそれを正しくやっていないと思います。

ところで、私が明白な何かを見落としたとしても、それほど厳しくしないでください、私はたった16歳です:)

4

1 に答える 1

2

render :json => ...コード内のは、JSONとしてシリアル化可能なオブジェクト(配列ハッシュなど)を返す限り、正常に機能するはずです(ただし、HistoricalGemではなく)。AbcTablejson_timelines

メソッド定義には次のようなものを試してください。

def json_timelines(gems = [])
  gems.map do |g|
    {
      :content => g.title,
      :date    => g.build_date
    }
  end
end

上記のスニペットは、「historical_gems」テーブルに「title」列と「build_date」列があることを前提としています。そうでない場合は、JSONで実際に表現したいフィールドを反映するようにコードを調整します。

于 2012-12-12T19:40:58.207 に答える