【问题标题】:Rails - Rendering partial on join queryRails - 渲染部分连接查询
【发布时间】:2016-06-01 16:44:42
【问题描述】:

我有TopicLesson 模型。一个主题有_很多课,一个课属于_一个主题。

在我的 topics_controller.rb 我有

@topics = Topic.all

我在索引视图中使用render @topics,通过部分_topic.html.erb

到这里为止,一切都很好。

现在,我想在 home.html.erb 中呈现带有课程的主题列表,并使用部分(不同于 _topic.html.erb)为这些元素呈现 html。

在我的 static_pages_controller.rb 我有:

def home
  @available_lessons = Topic.joins(:lessons)
end

我在 views/static_pages 文件夹中创建了一个部分 _available_lesson.html.erb,然后在 home.html.erb 文件中放入了render @available_lessons

我希望得到新的部分,但 Rails 继续呈现旧的 _topic.html.erb

我做错了什么?

【问题讨论】:

  • 只给出完整路径,render partial: "available_lesson", collection: @available_lessons,我不确定细节,但我怀疑当您使用简写语法时,rails 会识别您的 @available_lessons 是 @ 的集合987654329@,这就是为什么它会自动寻找_topic.html.erb(只是猜测,查一下确定)
  • 它有效,非常感谢您的回答和详细信息。如果您想创建一个正确的答案,我会将其标记为正确的答案:)

标签: ruby-on-rails partials


【解决方案1】:

只要给出完整路径

render partial: "available_lesson", collection: @available_lessons 

我不确定细节,但我怀疑当您使用简写语法时,rails 会识别您的@available_lessonsTopic 的集合,这就是它自动查找_topic.html.erb 的原因(只是猜测, 查一下确定)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2017-05-07
    • 2017-06-01
    • 2013-06-24
    • 2011-02-26
    • 2012-10-16
    相关资源
    最近更新 更多