如何在ror中动态创建控件

时间:2014-09-20 11:58:52

标签: ruby-on-rails

<%= form_for(:offer,:url=>{:controller=>'offers',:action=>'combo'}) do |f|%>

  <%= f.label "Select Category:" %> &nbsp;
  <%= f.select :catId_buy1, options_from_collection_for_select(@categories, "id", "name"), prompt: "Select Category"%>

  <%= f.label "Select Menu:" %> &nbsp;
  <%= f.collection_select :menuName_buy1, Menu.all,:menu_item_name,:menu_item_name, prompt: "Select Menu Item"%>

  <%= f.label "Discountable Quantity:" %> &nbsp;
  <%= 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)这样的控制器,依此类推。请帮帮我。

1 个答案:

答案 0 :(得分:0)

您无法动态创建控制器。它们是硬编码文件,描述了您可以执行的不同操作。 Rails不能“猜测”你想做什么(理论上可能除非你在控制台中使用标准REST,就像你在控制台中使用脚手架一样,但即使在实践中我也相信铁轨是不可能的。)

我相信您要做的是将类别作为参数传递给您的表单(不会链接到模型,而只是由控制器使用)。然后在您的控制器中,您可以根据此属性的值执行一些逻辑。 你应该have a look at this question

<%= f.input :menuId, as: :fake %>