@meagarが指摘したように、これを行う方法は、コントローラーでカスタムアクションを作成し、次にルートを作成してlink_to
から、ビューでその名前付きルートを使用することです。
私Client#Controller
は今この方法を持っています:
def update_score
@client = current_user.clients.find(params[:id])
@client.set_score
respond_to do |format|
if @client.update_attributes(params[:client])
format.html { redirect_to clients_url, notice: 'Score was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @client.errors, status: :unprocessable_entity }
end
end
end
私routes.rb
は今このルートを持っています:
match ':controller/update_score/:id' => 'clients#update_score', :as => :update_score
そして私の見解では、私はこのリンクを使用しました。ここで、client
はブロックによって生成されたローカル変数です。
<%= link_to 'Update Score', update_score_path(client) %>