team_controller.rb 中的以下join
方法通过使用 EmberJs 提交表单来发送以下数据
{"id"=>"3", "user_id"=>"42", "action"=>"join", "controller"=>"teams"}
记录是使用join
下面的方法创建的(根据控制台),但是在save
引发错误之后发生的事情的代码
ArgumentError (too few arguments):
app/controllers/teams_controller.rb:145:in `format'
app/controllers/teams_controller.rb:145:in `join'
我按照Rails脚手架生成器的方法复制了代码@team.save
,所以我有点惊讶。希望它会以 json 响应,但我以 html 格式保留just because
(也许有一个优雅的降级好处)。您能告诉我为什么会抛出该错误和/或如何避免它吗?
导轨方法
def join
@team = Team.find(params[:id])
id = params[:user_id]
@team.user_ids = @team.user_ids.push(id)
if @team.save
format.html { redirect_to @team, notice: 'Joined Team' }
format.json { render json: @team, status: :created, location: @team }
else
format.html { render action: 'new' }
format.json { render json: @team.errors, status: :unprocessable_entity }
end
end
更新,我还应该注意,根据错误消息的行号,该方法似乎将格式视为 html,但是,我希望将其视为 json