2010-08-14 4 views
0

레일 앱에 "단어"모델이 있습니다. 내 단어 컨트롤러의 색인 작업에서 필자는 데이터베이스에서 단어 집합을 가져 와서 정의를 찾습니다. 데이터베이스에 정의를 저장하지 않고 거기에 저장하고 싶지 않습니다. 그러나 컨트롤러에서 각 단어의 정의를 단어 개체에 추가 한 다음보기에 전달하고 싶습니다. 즉레일 : 뷰에 전달하기 전에 모델 기반 객체에 필드 추가하기

, 내 "단어"개체가 포함 된 다음 필드 :

t.integer "user_id" 
t.text  "notes" 
t.datetime "created_at" 
t.datetime "updated_at" 
t.string "word_name" 

단어 컨트롤러가하는 일

@words = current_user.words 

추천하고보기가

<% @words.each do |w| %> 
    <%= w.word_name %> 
    <%= w.notes %> 
<% end %> 
등을 표시 할 수 있습니다

내가 컨트롤러를 갖고 싶습니다

@words.each do |w| 
    w.definition = "blah" 
end 

하고 나의보기에이 표시 : 위에서 작동하지 않도록 유형 말씀의 목적은,는 "정의"필드가없는 그러나

<%= word.definition %> 

. 이것을 수행하는 가장 깨끗한 방법에 대한 제안이 있으십니까?

감사합니다.

답변

1

가상 모델을 단어 모델에 추가하십시오. 이처럼 간단

http://railscasts.com/episodes/16-virtual-attributes

무언가가 그것을

class Word < ActiveRecord::Base 
    attr_accessor :definition 

    .... rest of class.... 
end 
+0

감사를해야이 잘 작동합니다. 내 객체에서도 to_json 메소드를 사용하고 있으며 to_json이 가상 속성을 선택하지 않는다는 사실이 밝혀졌습니다. 다음 게시물은 그 문제를 해결하는 데 도움이되었습니다. http://stackoverflow.com/questions/1563118/activerecord-virtual-attributes-treaded-as-a-record-attributes – stupakov

관련 문제