2012-01-26 6 views
0

研究にアクセスするためのform_tag - > has_manyのトピックス - > has_manyの参照Rails3:コントローラ配列

は私のモデルは、トピックIDに基づいて参照をアクセスするには、以下の方法があります。

def self.rel_references(topic_id) 
    Reference.where(:topic_id => topic_id) 
    end 

私は上記にアクセスしています私のコントローラは、次のように:

@references= Study.rel_references(params[:topic_id]) 

は私が話題ユーザーがクリックに基づいて参照をアクセスするための研究モデルの表示ページ上のフォームを持っている必要があります。 (topic_idに基づいて参照をロードするリモートフォーム)。私がこれをやろうとしている方法は次のとおりです:

- form_tag rel_references, :id=>"references_form", :method => 'get' do    
    = text_field_tag :topic_id, params[:topic_id] 
    = submit_tag "Get references" 

私の見解では、参照にアクセスすることができません。私がここで間違っているかもしれないことを理解するのを助けてください。私はここで何かを逃しているかもしれないので、Railsにはとても新しいです。ありがとう!

+1

だけのノートを、あなたは、しかし、私はあなたが行う代わりに、rel_references方法を必要としないことを推測している実際のモデルとの関係「コード」ことを示していませんでした。すべてのトピックを取得するトピック。私を混乱させることの1つは、rel_referencesメソッドが静的メソッドまたはクラスメソッドであり、Study-> Topicsの関係をすべて避けることです。なぜですか?たぶん、 "Study.rel_references"と "self.rel_references"がもう少し理解を深めるのに役立つかもしれない理由を説明してください。 –

+0

@AndrewLank rel_referencesメソッドを使って参照にアクセスし、current_study.topics.referencesとして直接アクセスする必要がない理由は、特定のトピックの参照を取得するだけで、参照はトピックに属し、順番にStudyに属します。したがって、すべてのトピック(study.topicsを使用)にアクセスした後、topic_idの選択に基づいて参照にアクセスできるようにしたいので、topic_id paramを受け入れるメソッドです。私が明確にすることができたら教えてください。 Railsの用語に関する私の知識不足を許してください。 – rgoraya

答えて

0

非難されたスタイルブロックヘルパーを削除し、私のフォームで=に置き換えると、この問題が解決されました。私のフォームは今のようになります。current_study.references:こちらを

= form_tag rel_references, :id=>"references_form", :method => 'get' do    
    = text_field_tag :topic_id, params[:topic_id] 
    = submit_tag "Get references" 
関連する問題