如何在提交按钮后调用控制器方法?

时间:2015-06-29 10:25:24

标签: ruby-on-rails ruby ruby-on-rails-4 model-view-controller

我正在阅读关于helper class的指南,但没有得到任何关于实施它的线索。我在观看页面上有一个按钮:

 <tbody>
   <% @book.each do |book| %>
  <tr>
    <td colspan="3"><%= link_to 'Show page numbers', book, :class => 'btn btn-info' %></td>
  </tr>
 </tbody>

目的:

  1. 点击按钮并从控制器
  2. 中获取页码
  3. 用提取的page numbers
  4. 替换按钮

    我在controller类中定义了一个方法:

    def fetch_page_numbers
    ...
    end
    

    我的问题:

    • 如何从视图
    • 调用fetch_page_numbers方法
    • 从数据库中检索结果后如何显示数字而不是视图中的按钮
    • 如何在redirect_to中应用fetch_page_numbers因为我从未将数据重定向到同一页面

    有什么暗示吗?谢谢你的时间

1 个答案:

答案 0 :(得分:1)

  1. 如何从视图中调用fetch_page_numbers方法:

    您需要将此操作绑定到routes.rb文件中的路由,然后调用该路由或生成的帮助程序 - guide

  2. 从数据库中检索结果后如何在视图中显示数字而不是按钮

    如果您想动态替换按钮,则需要使用AJAX请求,并在javascript中处理其响应 - 完全不同的主题,请尝试this

  3. 如何在redirect_to中应用fetch_page_numbers因为我从未将数据重定向到同一页面

    你不能在AJAX中使用rails redirect_to,你可以做的就是例如在您的回复中包含redirect_path密钥,然后通过javascript重定向。但我认为你的意思是render json: {..data..}

  4. 总而言之,您确定正确接近了您的问题吗?没有任何问题与任何助手类有任何关系,动态替换按钮与重定向有点矛盾。

    始终尝试将问题分成最小的部分。尝试遵循MVP(最小可行产品)意识形态 - 创建简单但有效的东西,然后添加小功能。

    如果您这样做,所有当前的问题都会通过导轨guides来回答。祝你好运!