【问题标题】:Display Profile Name Instead Of Profile ID显示配置文件名称而不是配置文件 ID
【发布时间】:2016-11-26 21:09:54
【问题描述】:

我有一个链接到配置文件表中名称的选项的下拉列表。它们由一个名为“profile_id”的键链接。当我选择这些选项并将其显示在显示页面中时。它显示了 profile_id,但我想显示名称。谁能告诉我该怎么做。

表单视图选择如下所示:

<div class="field">
 <%= f.label :profile %><br>
 <%= f.collection_select :profile_id, Profile.all, :id, :name, {:prompt =>  'Please select an Aritst or Band'} %>
</div> 

显示视图如下所示:

<p>
<strong>Artist:</strong>
<%= @album.profile_id %>
</p>

架构是这样的:

create_table "albums", force: :cascade do |t|
 t.string   "title"
 t.date     "released"
 t.string   "genre"
 t.datetime "created_at", null: false
 t.datetime "updated_at", null: false
 t.integer  "profile_id"
 t.string   "image"
end

create_table "profiles", force: :cascade do |t|
 t.string   "name"
 t.date     "born"
 t.string   "bio"
 t.datetime "created_at", null: false
 t.datetime "updated_at", null: false
 t.string   "image"
end

表格确实为我提供了正确的名称选项,因此表格可以正确链接。但是当我查看结果时,它给了我个人资料 ID,而不是我选择的名称。现在我知道那是因为我已经指定它这样做。但是我如何让它显示名称。是否可以在显示视图代码中完成,还是必须在某个地方的控制器或模型中进行转换。

我打算将该选定选项也用作返回个人资料的链接。如果你也知道这一点,那将大大帮助我。

一如既往,非常感谢所有帮助。

【问题讨论】:

    标签: ruby-on-rails ruby forms ruby-on-rails-5


    【解决方案1】:

    将您的表演动作更改为

    <p>
    <strong>Artist:</strong>
    <%= @album.profile.name %>
    </p>
    

    【讨论】:

    • 就是这样。完美的。谢谢你。我一直在尝试 profile_id.name 并挠头。为帮助干杯。
    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    相关资源
    最近更新 更多