0

概要

Ruby on Rails サイトで、ある Web ページから別の Web ページに値を持ち込もうとしていますが、MySQL データベースに再度保存する必要はありません。Rubyは初めてなので、しばらくお待ちください。

概要

私の Web サイトのユーザーは、作成したマップを保存できます。今、私は彼らが地図を編集できるようにしたいと思っています。

マップをレンダリングする web ページ、newmaps.html.erb があります。マップには一意の ID があります。

    <%= newsavedmap.id %>

マップの下に「編集」ボタンがあります。ユーザーが「編集」をクリックすると、別の Web ページ 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

OK、夜の調査の後、いくつかの異なる情報源をまとめて、これに対する答えを得ることができました. 最も役立つ回答は次のとおりです。レール上のlink_to ruby​​でパラメータを渡し、Railsのビュー間で変数を渡す

link_to を使用して、あるビューから別のビュー (ある Web ページから別の Web ページ、ユーザー) にパラメーターを渡す方法を学びました。これが私がやった方法です:

newmaps.html.erb

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

上記のコードは、アンカー テキスト「編集」を使用し、ユーザーを 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 に答える