0

概括

我试图将一个网页的价值带到我的 Ruby on Rails 网站上的另一个网页,而不是再次将其保存到我的 MySQL 数据库中。我是 Ruby 新手,所以提前感谢您的耐心等待。

概述

我的网站用户可以保存他们创建的地图。现在,我希望他们能够编辑地图。

我有一个网页 newmaps.html.erb,它呈现地图。地图有一个唯一的 ID:

    <%= newsavedmap.id %>

地图下方有一个“编辑”按钮。当用户单击“编辑”时,我希望他被带到另一个网页 maptry.html.erb ,它本质上是一种允许用户编辑地图的表单。

问题

我希望将特定的 newsavedmap.id 传输到 maptry.html.erb,以便我可以加载带有 newsavedmap.startingaddress、newsavedmap.endingaddress 以及与该记录关联的所有其他数据的表单。

我想我应该使用“POST”,但我不确定在这种情况下如何做到这一点。这个链接给了我一些想法,但我的表单不是 Rails 表单,所以我不知道如何将它翻译成我自己的解决方案:Pass a custom _form text field parameter to a second page Rails

maptry.html.erb

    <div id="control_panel">
    <div>
    <input id="startingaddress" type="text" name="starthere" size="56"></p>
    </div>
    <div>
    <input id="endingaddress" type="text" name="endhere" size="56"></p>
    </div>
    <div>    
        <input onclick="calcRoute();" id="showmapview" value="Show Map">
    </div>   
    </div>
4

1 回答 1

0

好的,经过一夜的研究,我能够汇集一些不同的资源来帮助我找到这个问题的答案。最有帮助的答案在这里:在 Rails上通过 link_to ruby​​ 传递参数在 Rails 中的视图之间传递变量

我学习了如何使用 link_to 将参数从一个视图传递到另一个视图(一个网页到另一个网页,再传递给用户)。这是我的做法:

新地图.html.erb

    <%= link_to 'Edit', maptry_path(:newsavedmap_id => newsavedmap.id) %>

上面的代码使用锚文本“Edit”并将用户链接到 maptry.html.erb 视图。它还带来了 newsavedmap_id。然后,我更新了 maptry_controller

maptry_controller.rb

    @newsavedmap = Newsavedmap.find(params[:newsavedmap_id])

有了这个,我可以通过插入@newsavedmap.WHATEVER 从地图中添加我想要的任何信息。见下文。我还在隐藏字段中添加了 params[:newsavedmap_id] 以防万一。

maptry.html.erb

    <input name="newsavedmapid" type="hidden" value="<%= params[:newsavedmap_id] %>" />  
    <input id="start" type="text" name="starthere" size="56" value="<%= @newsavedmap.start%>"></p>

很可能,这不是最好的或唯一的解决方案,但就像我说的,我对 Rails 很陌生。我感谢人们提供的任何其他答案,因此我可以继续学习。谢谢!

于 2013-08-10T13:07:31.287 回答