【问题标题】:Rails 3 - routing to a controller methodRails 3 - 路由到控制器方法
【发布时间】:2012-06-12 16:55:57
【问题描述】:

这是我目前使用的: Rails -v 3.2.3

我正在尝试在 routes.rb 中创建一个路径,该路径将路由到我的 links_controller.rb 中的一个方法。

routes.rb

match 'modify_points' => 'links#modify_points', :as => :modify_points

links_controller.rb 方法

def modify_points
  @link = Link.find(params[:id])
  @link.update_attribute :points, @link.points + params[:by].to_i if params[:by] =~ /[+|-]?1/
  render_text @link.points
end

这是我在我看来调用该方法的方式:

<%= link_to('UP', modify_points_path(link, :by => 1), :remote => true) %>

然而,当我点击这个UP 链接时......什么也没有发生。应该发生的是link.points应该增加1,但是当我在控制台中检查时,我的积分仍然为零。我是否正确创建了路线?

【问题讨论】:

    标签: ruby-on-rails-3 controller routes


    【解决方案1】:

    我一直用这样的东西:

    匹配 '/modify_points' => 'link#modify_points', :as => 'modify_points'

    这会生成您想要的路线吗? rake 路由显示什么?

    【讨论】:

    • 耙路线显示此modify_points /modify_points(.:format) links#modify_points 我认为这是正确的路线?但是它并没有增加我的分数,所以我一定是写错了方法
    • 如果 modify_points 方法在我的 links_controller 内部...该路线不应该类似于 /links/:id/modify_points(.:format) 吗? .... 抱歉还是 Rails 的新手
    • 有些奇怪。您的路线显示“links#modify_points”,但您有“link#modify_points”
    • 哎呀是我的错字哈哈抱歉!
    • 是的,那些小错别字很难看! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多