5

フォームを外部URLに送信する必要があるため、次のようになります。

form_for(@task, :url => "https://www.external.com/Submit") do |f|)
    <%= f.hidden_field :assignmentId, :value => @assignment %>
    <%= link_to image_tag(@imagelocation) %>
....

form_forコントローラ変数にアクセスする必要があるため、を使用しています。

外部サーバーはパラメータを探しますassignmentId。フォームが送信されると、パラメータは実際には次のように利用できます。

params[:task][:assignmentId]

これは、外部サーバーでの検証に合格しません。

これを解決するにはどうすればよいですか?コントローラから変数にアクセスし、「naked」パラメータを外部サーバーに渡すにはどうすればよいですか?

[編集]送信パラメータは次のようになります

utf8 =%E2%9C%93&_method = put&task%5BassignmentId%5D = 2LVQ39Z0B6UWI8NXYWJTYRKGQXIMXN&task%5Boutput%5D = carpet&commit = Post

タスクが参照されないようにしたい。

4

1 に答える 1

5

hidden_field_tagの代わりに使用してくださいf.hidden_field。ところで、このフィールドに割り当てのIDを保存する場合は@assignment.id、だけでなく、を使用する必要があります@assignment

<%= hidden_field_tag :assignmentId, @assignment.id %>
于 2013-03-25T11:26:20.363 に答える