Rails中的PUT问题

时间:2014-03-10 22:43:15

标签: ruby-on-rails curl

我正在创建一个调查应用程序,我在rails服务器上创建调查,只要用户下次打开我的Android应用程序时没有参加调查,他们就会将调查结果显示给采取。一旦用户参与调查,我想更新调查以包含该用户,以便他们每次登录时都不再发送相同的调查。我在用户/调查之间使用HABTM关系。

我能够得到调查/让用户接受它/在服务器上创建用户选择但我正在努力与仅进行调查的用户更新调查。我很确定我的问题是我的PUT请求(auth_token用于识别用户)。

Started PUT "/api/v1/surveys/4?auth_token=8d707d9fa2b279f381eb416f1be887c0"

这是我的控制器:

module Api
  module V1
    class SurveysController < ApplicationController
      # before_action :restrict_access
      respond_to :json

      def survey
        @survey = Survey.check_survey params[:auth_token]
        redirect_to api_v1_survey_path(@survey)
      end

      def update
        @survey = Survey.find(params[:id])
        @user = User.find_user_by_token params[:auth_token]
        complete_survey @survey, @user
      end

我的模特:

class Survey < ActiveRecord::Base
  has_many :surveytizations
  has_many :questions, :through => :surveytizations
  has_and_belongs_to_many :users, -> { uniq }

  def complete_survey (survey, user)
    survey.users << user
    survey.number_taken += 1
    if survey.number_taken == survey.survey_limit
      survey.survey_finished = true
    end
  end

在使用curl to test Rails routes时,它将介绍如何更新用户的属性。我很陌生 - 如果我想用额外的用户测试更新用户数组,我该怎么做?我试过survey[users]=user1,但这似乎不起作用。

提前感谢您的帮助!

0 个答案:

没有答案