我是Rails的新手,我刚刚花了一个小时谷歌搜索并没有找到一个例子。
所以我有一个简单的表单需要提交给API。所以我尝试直接将它提交给API,但得到了我在我的应用程序中做的建议,所以我可以对结果做些什么。无论如何,这是我的简单形式:
<%= form_tag(:action => 'submit') do |f| %>
<%= f.text_field :email, :value => "Your email address...", :class => "text", :id => "email", :name => 'email',
:onFocus => "change(this,'#222222'); this.value=''; this.onfocus=null;",
:size => "26" %>
<%= f.hidden_field :ref_code, :id => 'ref_code', :name => 'ref_code', :value => @referralid %>
<%= submit_tag "Enter To Win", :class => "button-positive submit" %>
<% end %>
我看到的所有内容都有使用模型的表单,我不需要保留这些数据,只需将其传递给API即可。
所以我的想法是我只是在家庭控制器中创建一个动作,这个页面存在并将动作提交给它但是我得到一个RoutingError而且它是:没有路由匹配{:action =&gt;“submit”,:控制器=&gt; “中的家”}
那么我需要在Routes.rb中添加什么?我试过了:
namespace :home do
resources :submit
end
没有喜悦......我确信这很简单,但我找不到合适的例子。
答案 0 :(得分:10)
我认为你应该看一下the ruby guides,它的解释非常好(但我不认为它涉及到API),并且它会在将来节省你很多时间,我发誓。
不确定你的意思,但我看到一些有线的东西,所以我希望有用,但如果你从网上关注一些教程,请告诉我们链接。
基本上我所做的总是调用一个控制器(MVC)的动作,这样你应该有一个控制器(?? apis_controller
??)并调用它的一个动作。
所以你想使用form_tag
而不是form_for
,因为你没有对模型进行处理,因此你想要摆脱f.
并使用后缀_tag
( api)。
<%= form_tag(send_api_path) do %>
<%= text_field_tag :email, "Your email address..." %>
<%= hidden_field_tag :ref_code, @referralid %>
<%= hidden_field_tag :api_name, 'your_api_name' %>
<%= submit_tag "Enter To Win" %>
<% end %>
然后,在apis_controller.rb
中,您可以创建一个动作send
,用于发送和管理您的请求。
#apis_controller.rb
def send
# TODO: your code here
end
另一件事是设置路线,比如
#routes.rb
match 'apis/send' => 'apis#send', :as => :send_api
我确定这不是100%正常工作的代码,但它应该是有用的
How to call the api? I had I fast look and found this.
当你寻求帮助时,附上你得到的错误总是好的,这使人们更容易理解这个问题。