<%= form_for(:offer,:url=>{:controller=>'offers',:action=>'combo'}) do |f|%>
<%= f.label "Select Category:" %>
<%= f.select :catId_buy1, options_from_collection_for_select(@categories, "id", "name"), prompt: "Select Category"%>
<%= f.label "Select Menu:" %>
<%= f.collection_select :menuName_buy1, Menu.all,:menu_item_name,:menu_item_name, prompt: "Select Menu Item"%>
<%= f.label "Discountable Quantity:" %>
<%= f.number_field :qty_buy1%>
<%= submit_tag("Create New Offer")%>
<%end%>
我是rails的新手。我在其他页面中有一个下拉值,其值为1-10。如果我从此下拉列表中选择4,那么我想创建像(catId_buy2,menuName_buy2,qty_buy2),(catId_buy3,menuName_buy3,qty_buy3)
这样的控制器,依此类推。请帮帮我。
答案 0 :(得分:0)
您无法动态创建控制器。它们是硬编码文件,描述了您可以执行的不同操作。 Rails不能“猜测”你想做什么(理论上可能除非你在控制台中使用标准REST,就像你在控制台中使用脚手架一样,但即使在实践中我也相信铁轨是不可能的。)
我相信您要做的是将类别作为参数传递给您的表单(不会链接到模型,而只是由控制器使用)。然后在您的控制器中,您可以根据此属性的值执行一些逻辑。 你应该have a look at this question。
<%= f.input :menuId, as: :fake %>