【问题标题】:Getting the latest entry for a user from a table从表中获取用户的最新条目
【发布时间】:2016-01-18 14:44:13
【问题描述】:

我有一个名为names 的表,其中有一列名为name。用户将在进入下一页之前输入文本。

在下一页中,我想向他们展示他们在上一页中输入的数据。

在控制器中我尝试了类似@names = current_user.names.all

在我做的视图中

<ul class="names-list">
    <% @names.each do |nname| %>

        <li>
          <%= link_to nname.name, edit_name_path(nname) %>
        </li>

    <% end %>
  </ul>

并显示最新日期的最后一个列表项。但是肯定会有一个 Rails 快捷方式来为用户获取最后的数据。有什么帮助吗?

更新:现在我做了类似的事情 @last_name = current_user.names.last 在控制器和视图中 &lt;%= @last_name.to_s %&gt; 生成#&lt;Name:0x007fae23ee1b68&gt; 而不是名称字符串。

【问题讨论】:

  • 您说您的用户正在输入文本。这是在哪里输入的?我看到一个链接,但没有看到任何形式的文本输入。
  • 可以贴上一页的查看代码吗?
  • 我已经在index 操作中完成了该表单部分,并且它已成功保存到 nickname 表中的 name 列中。这里的疑问是如何在rails控制器中查询用户的最后一个name
  • &lt;%= form_for @name do |f| %&gt; &lt;%= f.text_field :name, class: 'input-field' %&gt;&lt;br/&gt; &lt;%= f.submit 'Submit', class: 'signup-btn full-width' %&gt; &lt;% end %&gt;@Lanny @Stewart
  • 好的。您能显示接收该表单输入的控制器操作吗?另外,你可以编辑你上面的帖子吗?那里的代码比 cmets 更容易阅读。谢谢!

标签: ruby-on-rails ruby database sqlite


【解决方案1】:

我认为&lt;%= @last_name.to_s %&gt; 只在内存中输出对象@last_name 的名称,因为这正是您要求它输出的内容。

如果您的名称表包含“名称”列, 您认为正确的代码应该是&lt;%= @last_name.name %&gt; 这专门输出对象@last_name 的名称,而不是对象名称本身(在内存中)。

【讨论】:

    【解决方案2】:

    通过@Lanny 发现

    在控制器中

    @last_name = current_user.names.last

    在视图中

    &lt;%= @names.name %&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 2019-01-17
      • 2010-10-12
      • 2017-10-19
      相关资源
      最近更新 更多