0

我必须为桌面游戏中的 p1 条目做一个增加值的按钮“bg”,但它不起作用......它使用 p1 = 0 保存游戏,但 link_to 没有效果..

非常感谢您的帮助!!!(对不起我的英语不好......)

控制器

def create

@game = Game.new(params[:game])
@game.p1 = 0


respond_to do |format|
  if @game.save
    format.html { render action: "show" }
  end  
    end 
end

def show

@game = Game.find(params[:id])

respond_to do |format|
  format.js {render 'hnew'}
  end

end

def add_three_points
  @game = Game.find(params[:id])
  @game.update_attribute(:p1, @game.p1 + 3)
end

意见

显示.html.erb

<%= render 'hnew' %>

hnew.js.erb

$('#ajax_hidden').html("<%= escape_javascript(render('hnew')) %>");

_hnew.html.erb

<%= link_to "bg", add_three_points_path(@game.id), {remote: true, method: :put}, 
    class: 'btn btn-small' %>
<%= @game.p1 %>

错误信息:

Started PUT "/add_three_points.14" for 127.0.0.1 at 2013-07-10 21:27:01 +0200
Processing by GamesController#add_three_points as 
Completed 404 Not Found in 1ms

ActiveRecord::RecordNotFound (Couldn't find Game without an ID):
app/controllers/games_controller.rb:86:in `add_three_points'
4

1 回答 1

0

The :method option of link_to is for the HTTP verb (:get, :post, :put or :delete)

What you want to do is below (using the :put method, preferred verb for updates)

<%= link_to "bg", add_three_points_path(@game), {remote: true, method: :put}, class: 'btn btn-small' %>

and in routes.rb:

put 'add_three_points' => 'games#add_three_points', :as => :add_three_points
于 2013-06-23T15:21:10.993 回答