0
我有了很多帖子故事模型的關聯對象:如何包括在渲染動作
story.rb
:
has_many :posts, :dependent => :destroy
post.rb
:
belongs_to :story, :touch => true
我使用AJAX來使一個獲取我的stories#index
動作的請求,並且在該動作中,我生成一個響應,其中包含符合我的搜索參數的故事數組。我包括我的回答一些額外的數據,如是否有一個current_user
,並通過我的搜索尋找的故事日期:
def index
ajax_response = {}
ajax_response[:currentUser] = user_signed_in? ? current_user : "no current user"
searched_through_date = Stories.last.created_at
@stories = get_stories(params,searched_through_date)
if @stories && @stories.length << 200
ajax_response[:stories] = @stories
ajax_response[:searched_through_date] = searched_through_date
else #only happens if there are too many responsive stories
ajax_response[:error] = {:type => "Response too large", :number_of_stories => @stories.length }
end
render :json => ajax_response
end
現在我想改變的響應,使每個故事,我返回還有一個附加屬性:latest_post
,它由屬於該故事的最新帖子組成。作爲一個相對的nOOb,我無法修改故事對象,以便它們包含這個新的屬性/關聯,然後將其與故事對象一起呈現爲響應的一部分。
任何幫助將不勝感激!
編輯:
這裏是get_stories
方法的相關部分:
def get_stories(params)
q = get_story_search_params(params)
Story.search_with_params(q).limit(q[:limit]).offset(q[:offset])
end
def get_story_search_params(params)
q = {}
q[:limit] = params[:limit].blank? ? 25 : params[:limit].to_i
q[:text_to_search] = params[:text_to_search].blank? ? nil : params[:text_to_search]
q[:offset] = params[:offset].blank? ? 0 : params[:offset]
return q
end
你或許應該包括你的'get_stories'方法的代碼,因爲這就是產生'@ stories'集合(這是你想修改什麼)。 – MrTheWalrus 2013-03-04 21:53:36
我將編輯問題以包含代碼,但該方法僅返回一個故事對象數組。 @MrTheWalrus指出我想修改該數組中的故事對象是正確的。 – 2013-03-04 23:25:52