我正在构建一个服务的基本管理员应用程序,用于提高创建新用户的效率。现在,我在应用程序中手动完成它,并且它有一些我想要自动执行的繁琐步骤。
该服务将用户视为"会员"
所以我在rails项目中创建了一个Members scaffold,它与成员在Service中的参数相同。
我想在我的应用程序中执行此操作,而不是在服务应用程序中输入一些数据。所以我有一个包含多个参数的表单,用于创建成员并保存这些参数::usname :usemail :usstudio_uid
接下来,我想使用输入的初始字段POST到Service API,以创建"邀请"对于新成员。
我试图通过在我的会员的显示视图中调用HTTParty函数来实现这一点。
我的表单正确保存参数,我通过HTTParty连接到Service API并创建邀请OK,但我要发送的成员参数不会填充。相反,它转向了我认为是纯文本参数的参考。
该功能的片段:
:body => {"callback_url" => "https://foo.com/#invitations",
"consumer_key" => "my consumer_key", "email" => :usemail,
我想:usemail引用显示页面中引用的成员的参数(即cliff@foo.com)。相反,正如您将在下面看到的那样,Service API会认为参数是一个字符串,返回" usemail"作为email参数,而不是我想引用的Member对象的参数。
我对铁轨和编码很陌生,所以它可能是一个明显的答案,但我昨天花了6个小时试图找出它。救命! :)
members.rb模型:
class Member < ActiveRecord::Base
end
members_controller rb:
Class MembersController < ApplicationController
before_action :set_member, only: [:show, :edit, :update, :destroy]
respond_to :html
def index
@members = Member.all
respond_with(@members)
end
def show
@member = Member.find(params[:id])
end
def new
@member = Member.new
respond_with(@member)
end
def edit
respond_with(@member)
@member.save
end
def create
@member = Member.new(member_params)
@member.save
respond_with(@member)
end
def update
@member.update(member_params)
respond_with(@member)
end
def destroy
@member.destroy
respond_with(@member)
end
private
def set_member
@member = Member.find(params[:id])
end
def member_params
params.require(:member).permit(:usname, :usemail, :usphone, :uspassword, :usconfirm_password, :usinvitation_uid, :usstudio_uid, :uscallback_url, :usmember_uid, :ususername, :usaccess_token)
end
end
在我的members_helper.rb中:
def getinvitation(member)
result = HTTParty.post "https://foo.com/api/v2/studios/studio_uid/invitations", :body => {"callback_url" => "https://foo.com/#invitations",
"consumer_key" => "my consumer_key", "email" => :usemail,
"name" => :usname, "studio_uid" => :usstudio_uid
}.to_json, :headers => {'X-Auth-Token' => "my token"}
JSON.parse(result.body)
x = ActiveSupport::JSON.decode(result.body)
end
我在会员的节目路径中调用该功能:
views/members/show.html.erb
<%= getinvitation(@member) %>
以下是我得到的回复:
{"uid"=>"29ad0740f4aa47d788bb2a34e9ab7d78", "studio_uid"=>"ORfspJitFbVG",
"date_sent"=>"Sun Feb 1 16:49:21 2015", callback_url"=>"https://app.ustudio.com/#invitations?
invitation_uid=29ad0740f4aa47d788bb2a34e9ab7d78&studio_uid=ORfspJitFbVG",
"consumer_key"=>"my consumer_key", "email"=>"usemail", "name"=>"usname"}
答案 0 :(得分:0)
基本上,这就是我要找的东西
"email" => member.usemail
不是:usemail
或"usemail"