Ros*_*s R 2 forms controller ruby-on-rails-3
我是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 %>
Run Code Online (Sandbox Code Playgroud)
我所看到的所有内容都有使用模型的形式,我不需要保留这些数据,只需将其传递给API即可.
所以我的想法是我只是在家庭控制器中创建一个动作,这个页面存在并将动作提交给它但是我得到一个RoutingError并且它是:没有路由匹配{:action =>"submit",:controller =>"家"}
那么我需要在Routes.rb中添加什么?我试过了:
namespace :home do
resources :submit
end
Run Code Online (Sandbox Code Playgroud)
没有喜悦......我确信它很简单,但我找不到合适的例子.
eco*_*gic 10
我认为你应该看一下红宝石指南,它已经得到了很好的解释(但我不认为它会谈论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 %>
Run Code Online (Sandbox Code Playgroud)
然后,在您的apis_controller.rb创建操作中send,您可以发送和管理您的请求.
#apis_controller.rb
def send
# TODO: your code here
end
Run Code Online (Sandbox Code Playgroud)
另一件事是设置路线,如
#routes.rb
match 'apis/send' => 'apis#send', :as => :send_api
Run Code Online (Sandbox Code Playgroud)
我确定这不是100%正常工作的代码,但它应该是有用的
当你寻求帮助时,附加你得到的错误总是好的,这使人们更容易理解问题.