单击按钮时如何更改控制器中的方法?

德贝克

在我的网站上,我有卡片,点击“美国”按钮时需要弹出的卡片和点击“欧洲”按钮时需要出现的卡片。除了最后一部分,我编码了所有内容。如果我在控制器的 index 方法中输入它,则只会出现美国卡:

def index
  @foods = Food.usa
end

如果我输入这个:

def index
  @foods = Food.europe
end

只弹出欧洲卡。我希望能够通过在我的网站上单击一个简单的按钮来做到这一点。我怎么做?

我的按钮代码

<div class="btn-group btn-group-toggle" data-toggle="buttons">
  <label class="btn btn-primary active">
    <input type="radio" name="options" id="europe" autocomplete="off" checked> Europe
  </label>
  <label class="btn btn-primary">
    <input type="radio" name="options" id="usa" autocomplete="off"> USA
  </label>
</div>

我的控制器的名字是food_controller.rb

感谢你们对我的帮助。

阿西姆哈什米

您可以使用单选按钮的值将参数发送到您的控制器,该值将是usaeurope

然后您可以使用send方法动态调用usaeurope在您的Food模型上。

例如,您food_name从前端向控制器发送了一个参数

你的代码看起来像这样

def index
  @foods = Food.send(params[:food_type].to_sym)
end

但是在直接使用来自用户的参数时要小心,因为它可能会破坏您的应用程序。

一种安全的方法是在您的控制器中创建一系列可能的食物类型。

像这样的东西:

SUPPORTED_FOOD_TYPES = ["usa", "europe"].freeze

然后在你的控制器中你会这样做

def index
  @foods = Food.send(food_type.to_sym)
end


def food_type
  if SUPPORTED_FOOD_TYPES.include? params[:food_type]
    params[:food_type]
  else
    'all'
  end
end

您的 html 代码将如下所示:

<%= form_tag(foods_path, method: "get") do %>
  <div class="btn-group btn-group-toggle" data-toggle="buttons">
    <label class="btn btn-primary active">
      <input type="radio" name="food_type" value="europe" id="europe" autocomplete="off" checked> Europe
    </label>
    <label class="btn btn-primary">
      <input type="radio" name="food_type" value="usa" id="usa" autocomplete="off"> USA
    </label>
  </div>
  <input type="submit" value="Apply">
<% end %>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我的按钮放置在angularjs中的不同控制器中时,如何在按钮单击时调用控制器功能

来自分类Dev

在 Rails 视图中单击元素时如何触发控制器中的方法?

来自分类Dev

如何通过使用子视图控制器中的按钮单击来更改 tabBar 项目标题

来自分类Dev

在iPhone中单击“完成”按钮时,MP电影控制器将删除

来自分类Dev

单击一个按钮,在ASP.NET中的控制器中调用方法

来自分类Dev

当日期选择器位于视图控制器的顶部栏中时,如何使日期选择器出现在按钮单击上

来自分类Dev

如何创建一个在不更改视图的情况下调用控制器中的方法的按钮?

来自分类Dev

如何创建一个在不更改视图的情况下调用控制器中的方法的按钮?

来自分类Dev

如何通过单击按钮从控制器中选择数据

来自分类Dev

单击按钮后如何打开新的视图控制器?

来自分类Dev

如何获得单击按钮的控制器和动作?

来自分类Dev

如何从单选按钮单击调用控制器?

来自分类Dev

使用控制器从 ASP.net 中的按钮单击调用方法

来自分类Dev

检查是否在控制器中单击了按钮

来自分类Dev

如何在angularjs中单击按钮从控制器访问所选选项?

来自分类Dev

如何通过按钮单击asp.net MVC 4中的调用控制器

来自分类Dev

如何从按钮单击向laravel 4中的控制器发送数据

来自分类Dev

如何在angularjs中单击按钮从控制器访问所选选项?

来自分类Dev

如何在单击添加按钮时从表中添加或删除记录,并在提交时将所有表行发送到控制器?

来自分类Dev

单击时如何更改按钮中的文字?

来自分类Dev

单击时如何更改按钮中的文字?

来自分类Dev

如何从子视图控制器中更改“后退”按钮文本?

来自分类Dev

如何从子视图控制器中更改“后退”按钮文本?

来自分类Dev

在我的GSP页面中单击分页的“前进”按钮时,我在控制器中获取了搜索参数的空值

来自分类Dev

单击部分视图中的按钮时,将部分视图的详细信息转发到控制器的HttpPost方法

来自分类Dev

Xcode中按下按钮时如何去相同的视图控制器?

来自分类Dev

在其中一个控制器上按下按钮时,更改页面视图控制器中的视图

来自分类Dev

更改选择框时如何调用控制器?

来自分类Dev

更改导航控制器的返回按钮

Related 相关文章

  1. 1

    当我的按钮放置在angularjs中的不同控制器中时,如何在按钮单击时调用控制器功能

  2. 2

    在 Rails 视图中单击元素时如何触发控制器中的方法?

  3. 3

    如何通过使用子视图控制器中的按钮单击来更改 tabBar 项目标题

  4. 4

    在iPhone中单击“完成”按钮时,MP电影控制器将删除

  5. 5

    单击一个按钮,在ASP.NET中的控制器中调用方法

  6. 6

    当日期选择器位于视图控制器的顶部栏中时,如何使日期选择器出现在按钮单击上

  7. 7

    如何创建一个在不更改视图的情况下调用控制器中的方法的按钮?

  8. 8

    如何创建一个在不更改视图的情况下调用控制器中的方法的按钮?

  9. 9

    如何通过单击按钮从控制器中选择数据

  10. 10

    单击按钮后如何打开新的视图控制器?

  11. 11

    如何获得单击按钮的控制器和动作?

  12. 12

    如何从单选按钮单击调用控制器?

  13. 13

    使用控制器从 ASP.net 中的按钮单击调用方法

  14. 14

    检查是否在控制器中单击了按钮

  15. 15

    如何在angularjs中单击按钮从控制器访问所选选项?

  16. 16

    如何通过按钮单击asp.net MVC 4中的调用控制器

  17. 17

    如何从按钮单击向laravel 4中的控制器发送数据

  18. 18

    如何在angularjs中单击按钮从控制器访问所选选项?

  19. 19

    如何在单击添加按钮时从表中添加或删除记录,并在提交时将所有表行发送到控制器?

  20. 20

    单击时如何更改按钮中的文字?

  21. 21

    单击时如何更改按钮中的文字?

  22. 22

    如何从子视图控制器中更改“后退”按钮文本?

  23. 23

    如何从子视图控制器中更改“后退”按钮文本?

  24. 24

    在我的GSP页面中单击分页的“前进”按钮时,我在控制器中获取了搜索参数的空值

  25. 25

    单击部分视图中的按钮时,将部分视图的详细信息转发到控制器的HttpPost方法

  26. 26

    Xcode中按下按钮时如何去相同的视图控制器?

  27. 27

    在其中一个控制器上按下按钮时,更改页面视图控制器中的视图

  28. 28

    更改选择框时如何调用控制器?

  29. 29

    更改导航控制器的返回按钮

热门标签

归档