私は次の協会を持っています
Group:
has_many :group_links, :dependent => :destroy
GroupLink:
belongs_to :group
GroupLInks ビュー内からは見えない他のオブジェクトを含むレイアウト内の特定のグループに属するすべてのグループ リンクを表示したいと考えています。SO 私は次のように GroupController からテンプレートをレンダリングしたいと思います:
def group_links
@group_links = @group.group_links.all
render :template => 'group_links/group_links', :layout =>
'/layouts/sponsored_group_manage_sub_menu'
end
しかし、次のエラーが表示されます。
The action 'index' could not be found for GroupLinksController
GroupLinks の「インデックス」ビューを作成し、それを他のオブジェクトを含むレイアウト内に表示しようとすると、エラーがスローされます
"You have a nil object"
グループコントローラー内で初期化する次のメソッドがあります。
def init_group
@group = Group.find_by_id(params[:id])
@group_blog_tags=@group.blog.blog_posts.tag_counts
@booth_links = @group.group_links.all
max_id = Group.count_by_sql("select min(profile_id) from (select profile_id from
group_memberships where group_id = #{@group.id} order by profile_id desc
limit 200) as x")
@booth_members = @group.members.all(:conditions => "profiles.id >= #
{rand(max_id)+1}", :limit => 20).to_a.sort! { |a,b| rand(3)-1 }
redirect_to groups_explorations_path unless @group
end
これらの他のオブジェクトは、他のオブジェクトを表示するためにグループ レイアウトで使用されます。問題は、GroupsController から別のオブジェクトを表示できたことです。そのオブジェクト Controller 内でのインデックス アクションは必要ありません。GroupLinks にもまったく同じ設定をしていますが、この場合は機能しません...これを解決するのを手伝ってもらえますか?