【发布时间】:2014-01-12 19:37:36
【问题描述】:
我是 RoR 的新手,我正在尝试将用户选择的下拉 ID 传递回控制器以加载特定于业务的页面。我有一个简单的数据库,列出了十个可以正常加载的企业,但是当我选择一个选项时,我收到了这个错误:No route matches [POST] "/businesses/1/2/3/4/5/6/7 /8/9/10"
我可以让表单的动作值是动态的吗?有哪些选择?
控制器:business_controller.rb
def home
@business_dd = Business.find(:all)
end
def update
@business = Business.find(params[:id])
redirect_to :action => "show", :id => @business
end
def show
@business_dd = Business.find(:all)
@business = Business.find(params[:id])
end
查看:_header.html.erb
<%= form_for :business, :url => business_path(@business_dd) do |f| %>
<%= f.select(:id, options_for_select(
@business_dd.map{ |f| [f.name, f.id]}),
:include_blank => 'Please select') %>
<%= f.submit "Submit" %>
<% end %>
为下拉菜单生成的 HTML:
<form accept-charset="UTF-8" action="/businesses/1/2/3/4/5/6/7/8/9/10" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="FS7sYiq8NicsKfnUwzTTHpobtA180qOjcAOnuWNONPc=" /></div>
<select id="business_id" name="business[id]"><option value="">Please select</option>
<option value="1">Business1</option>
<option value="2">Business2</option>
<option value="3">Business3</option>
<option value="4">Business4</option>
<option value="5">Business5</option>
<option value="6">Business6</option>
<option value="7">Business7</option>
<option value="8">Business8</option>
<option value="9">Business9</option>
<option value="10">Business10</option></select>
<input name="commit" type="submit" value="Submit" />
</form>
路线:
Prefix Verb URI Pattern Controller#Action
businesses GET /businesses(.:format) businesses#index
POST /businesses(.:format) businesses#create
new_business GET /businesses/new(.:format) businesses#new
edit_business GET /businesses/:id/edit(.:format) businesses#edit
business GET /businesses/:id(.:format) businesses#show
PATCH /businesses/:id(.:format) businesses#update
PUT /businesses/:id(.:format) businesses#update
DELETE /businesses/:id(.:format) businesses#destroy
root GET / businesses#home
update GET /update(.:format) businesses#update
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 form-for