【发布时间】:2013-12-13 07:05:48
【问题描述】:
我不知道这在 Rails 中是如何工作的,但我设置了这样的路线:
resources :users do
resources :api_keys
end
(用户has_many: api_keys,api_key belongs_to: user)
然后我(因为我只关心 API 密钥)创建了以下控制器:
class ApiKeysController < ApplicationController
before_action :authenticate_user!
def index
@user = User.find(params[:user_id])
@api_key = User.apikeys
end
def create
@user = User.find(params[:user_id])
@api_key = ApiKey.new(create_new_api_key)
create_api_key(@api_key, @user)
end
def destroy
destroy_api_key
end
private
def create_new_api_key
params.require(:api_key).permit(user_attributes: [:id], :api_key)
end
end
其中规定,在每次操作之前对用户进行身份验证,索引会根据用户 ID 获取所有 api 密钥。 create 假设基于用户 id 创建一个 api 密钥,(注意: create_api_key(@api_key, @user) 只是一个抽象方法,说明 - 如果我们保存,重定向到 user_path 并发送一条消息,如果我们失败,返回用户路径并显示错误消息)
然后销毁,好吧,它只是找到一个 api 密钥,销毁它并重定向(再次使用抽象)。
有什么问题?
create_new_api_key 方法。它吓坏了,说:
语法错误,意外 ')',期待 => (SyntaxError)
我以为这就是我传递用户 ID 的方式??
【问题讨论】:
标签: ruby ruby-on-rails-4 strong-parameters nested-routes