【问题标题】:Rails - How to call values from one model into another model formRails - 如何将一个模型中的值调用到另一个模型表单中
【发布时间】:2023-04-08 22:55:01
【问题描述】:

我正在开发一些应用程序,我有 2 个模型。我在其中创建类别名称和问题的类别。类别 has_many questions 和 Question belongs_to Category。
我已将 category_id 添加到 Question 模型中。

现在我需要获取所有 Category_names 并将它们显示在我创建问题的表单中,以便用户可以选择在哪个 category_name 中保存问题。

我在第一行代码中尝试过类似的方法,但没有工作。

<%= f.input :category_id, Category.all.map(&:name) %>
<%= f.input :question_name, wrapper: :vertical_text_input, as: :text %>
<%= link_to "Markdown help", "http://assemble.io/docs/Cheatsheet-Markdown.html", target: "_blank", class: "right" %>
<%= f.input :answer %>
<%= f.input :image, as: :attachinary %>

问题:如何在我创建新问题的表单中显示所有类别名称?

【问题讨论】:

    标签: ruby-on-rails ruby rails-models


    【解决方案1】:

    您可能想要使用选择框并使用 collection select rails 助手:

    f.collection_select(:category_id, Category.all, :id, :name)
    

    【讨论】:

    • 它可以工作,但是当我打开此表单所在的页面时,在我刷新页面之前它不会显示 collection_select。然后加载选择字段。不知道为什么会这样..
    【解决方案2】:

    你也可以这样用。

    <%= f.select :category_id, Category.all.map(&:name), {prompt:"Choose Category"}%>
    

    @Jhon 建议。

    <%= f.select :category_id, Category.pluck(:name), {prompt:"Choose Category"}%>
    

    【讨论】:

    • Category.pluck(:name) 比上面的要快
    猜你喜欢
    • 2020-06-15
    • 2023-03-19
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多