Ruby on rails 检索Rails4中的传入参数
我正在用show controller方法将一些参数发布到Rails4应用程序中的远程URL,from/orders/:id route 从我的应用程序发送到服务的参数,服务将返回一组参数到我的应用程序的/fail或/success页面,具体取决于响应是否成功。我可以从日志中看到传入的参数 我想在我的Order controller中使用此参数创建OrderTransaction,我如何才能做到这一点Ruby on rails 检索Rails4中的传入参数,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,我正在用show controller方法将一些参数发布到Rails4应用程序中的远程URL,from/orders/:id route 从我的应用程序发送到服务的参数,服务将返回一组参数到我的应用程序的/fail或/success页面,具体取决于响应是否成功。我可以从日志中看到传入的参数 我想在我的Order controller中使用此参数创建OrderTransaction,我如何才能做到这一点 orders_controller.rb def success ### I w
orders_controller.rb
def success
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
def fail
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
日志中的传入参数=>
Started POST "/orders/fail" for 127.0.0.1 at 2014-06-01 13:40:28 +0300
Processing by OrdersController#fail as HTML
Parameters:
{
"TRANID"=>"",
"type"=>"Auth",
"refreshtime"=>"5",
"lang"=>"tr",
"amount"=>"30",
"ACQBIN"=>"490740",
"clientIp"=>"193.140.28.145",
"name"=>"AKBANK",
"cardHolderName"=>"dsadas dasdsa",
"okUrl"=>"http://localhost:3000/orders/success",
"failUrl"=>"http://localhost:3000/orders/fail",
"storetype"=>"3d_pay_hosting",
"Response"=>"Declined"
....
}
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :participation
has_one :transaction, :class_name => "OrderTransaction"
end
class OrderTransaction < ActiveRecord::Base
belongs_to :order
end
post 'orders/success' => 'orders#success'
post 'orders/fail' => 'orders#fail'
resources :orders, only: [:index, :new, :create, :show]
require 'digest/sha1'
class OrdersController < ApplicationController
before_filter :authenticate_user!
before_action :set_order, only: [:show, :edit, :update, :destroy]
skip_before_action :verify_authenticity_token
def index
@orders = Order.all
end
def show
@hashing = {
clientid: POS['clientid'],
oid: Time.now.to_i.to_s,
amount: @order.participation.examination.exam_fees.first.fee.to_s,
okUrl: POS['okUrl'],
failUrl: POS['failUrl'],
islemtipi:POS['islemtipi'],
taksit: '',
rnd: Time.now.to_i.to_s,
}
end
# GET /orders/new
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
@order.user_id = current_user.id
respond_to do |format|
if @order.save
...
else
...
end
end
end
def success
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
def fail
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
private
def set_order
@order = Order.find(params[:id])
end
def order_params
params.require(:order).permit(:id, :user_id, :participation_id, :amount, :cardHolderName)
end
end
<%= simple_form_for(@order, html:{class: "well"}, :url => "https://testsanalpos.est.com.tr/servlet/est3Dgate", :method => :post) do |f| %>
<% @hashing.each do |k, v| %>
<%= f.input k, input_html: {name: k, value: v}, as: :hidden %>
<% end %>
<%= f.button :submit, "Approve" %>
<% end %>
order.rb=>
Started POST "/orders/fail" for 127.0.0.1 at 2014-06-01 13:40:28 +0300
Processing by OrdersController#fail as HTML
Parameters:
{
"TRANID"=>"",
"type"=>"Auth",
"refreshtime"=>"5",
"lang"=>"tr",
"amount"=>"30",
"ACQBIN"=>"490740",
"clientIp"=>"193.140.28.145",
"name"=>"AKBANK",
"cardHolderName"=>"dsadas dasdsa",
"okUrl"=>"http://localhost:3000/orders/success",
"failUrl"=>"http://localhost:3000/orders/fail",
"storetype"=>"3d_pay_hosting",
"Response"=>"Declined"
....
}
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :participation
has_one :transaction, :class_name => "OrderTransaction"
end
class OrderTransaction < ActiveRecord::Base
belongs_to :order
end
post 'orders/success' => 'orders#success'
post 'orders/fail' => 'orders#fail'
resources :orders, only: [:index, :new, :create, :show]
require 'digest/sha1'
class OrdersController < ApplicationController
before_filter :authenticate_user!
before_action :set_order, only: [:show, :edit, :update, :destroy]
skip_before_action :verify_authenticity_token
def index
@orders = Order.all
end
def show
@hashing = {
clientid: POS['clientid'],
oid: Time.now.to_i.to_s,
amount: @order.participation.examination.exam_fees.first.fee.to_s,
okUrl: POS['okUrl'],
failUrl: POS['failUrl'],
islemtipi:POS['islemtipi'],
taksit: '',
rnd: Time.now.to_i.to_s,
}
end
# GET /orders/new
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
@order.user_id = current_user.id
respond_to do |format|
if @order.save
...
else
...
end
end
end
def success
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
def fail
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
private
def set_order
@order = Order.find(params[:id])
end
def order_params
params.require(:order).permit(:id, :user_id, :participation_id, :amount, :cardHolderName)
end
end
<%= simple_form_for(@order, html:{class: "well"}, :url => "https://testsanalpos.est.com.tr/servlet/est3Dgate", :method => :post) do |f| %>
<% @hashing.each do |k, v| %>
<%= f.input k, input_html: {name: k, value: v}, as: :hidden %>
<% end %>
<%= f.button :submit, "Approve" %>
<% end %>
订单\u controller.rb=>
Started POST "/orders/fail" for 127.0.0.1 at 2014-06-01 13:40:28 +0300
Processing by OrdersController#fail as HTML
Parameters:
{
"TRANID"=>"",
"type"=>"Auth",
"refreshtime"=>"5",
"lang"=>"tr",
"amount"=>"30",
"ACQBIN"=>"490740",
"clientIp"=>"193.140.28.145",
"name"=>"AKBANK",
"cardHolderName"=>"dsadas dasdsa",
"okUrl"=>"http://localhost:3000/orders/success",
"failUrl"=>"http://localhost:3000/orders/fail",
"storetype"=>"3d_pay_hosting",
"Response"=>"Declined"
....
}
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :participation
has_one :transaction, :class_name => "OrderTransaction"
end
class OrderTransaction < ActiveRecord::Base
belongs_to :order
end
post 'orders/success' => 'orders#success'
post 'orders/fail' => 'orders#fail'
resources :orders, only: [:index, :new, :create, :show]
require 'digest/sha1'
class OrdersController < ApplicationController
before_filter :authenticate_user!
before_action :set_order, only: [:show, :edit, :update, :destroy]
skip_before_action :verify_authenticity_token
def index
@orders = Order.all
end
def show
@hashing = {
clientid: POS['clientid'],
oid: Time.now.to_i.to_s,
amount: @order.participation.examination.exam_fees.first.fee.to_s,
okUrl: POS['okUrl'],
failUrl: POS['failUrl'],
islemtipi:POS['islemtipi'],
taksit: '',
rnd: Time.now.to_i.to_s,
}
end
# GET /orders/new
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
@order.user_id = current_user.id
respond_to do |format|
if @order.save
...
else
...
end
end
end
def success
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
def fail
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
private
def set_order
@order = Order.find(params[:id])
end
def order_params
params.require(:order).permit(:id, :user_id, :participation_id, :amount, :cardHolderName)
end
end
<%= simple_form_for(@order, html:{class: "well"}, :url => "https://testsanalpos.est.com.tr/servlet/est3Dgate", :method => :post) do |f| %>
<% @hashing.each do |k, v| %>
<%= f.input k, input_html: {name: k, value: v}, as: :hidden %>
<% end %>
<%= f.button :submit, "Approve" %>
<% end %>
需要“摘要/sha1”
类OrdersController<应用程序控制器
过滤前:验证用户身份!
在\u操作之前:设置\u顺序,仅:[:显示,:编辑,:更新,:销毁]
在\u操作之前跳过\u:验证\u真实性\u令牌
def索引
@订单=Order.all
结束
def秀
@散列={
clientid:POS['clientid'],
oid:Time.now.to_i.to_s,
金额:@order.participation.examition.examice\u fees.first.fee.to\s,
okUrl:POS['okUrl'],
failUrl:POS['failUrl'],
islemtipi:POS['islemtipi'],
taksit:“,
时间到了,现在到了,
}
结束
#获取/订单/新
def新
@order=order.new
结束
def创建
@订单=订单。新建(订单参数)
@order.user\u id=当前用户id
回应待办事项|格式|
如果@order.save
...
其他的
...
结束
结束
结束
def成功
###我想在这里创建一个带有传入参数的OrderTransaction!
@事务=OrderTransaction.new(????????)
结束
def故障
###我想在这里创建一个带有传入参数的OrderTransaction!
@事务=OrderTransaction.new(????????)
结束
私有的
def设置顺序
@order=order.find(参数[:id])
结束
def order_参数
参数require(:order).permit(:id,:user\u id,:participation\u id,:amount,:cardinner name)
结束
结束
订单/show.html.erb=>
Started POST "/orders/fail" for 127.0.0.1 at 2014-06-01 13:40:28 +0300
Processing by OrdersController#fail as HTML
Parameters:
{
"TRANID"=>"",
"type"=>"Auth",
"refreshtime"=>"5",
"lang"=>"tr",
"amount"=>"30",
"ACQBIN"=>"490740",
"clientIp"=>"193.140.28.145",
"name"=>"AKBANK",
"cardHolderName"=>"dsadas dasdsa",
"okUrl"=>"http://localhost:3000/orders/success",
"failUrl"=>"http://localhost:3000/orders/fail",
"storetype"=>"3d_pay_hosting",
"Response"=>"Declined"
....
}
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :participation
has_one :transaction, :class_name => "OrderTransaction"
end
class OrderTransaction < ActiveRecord::Base
belongs_to :order
end
post 'orders/success' => 'orders#success'
post 'orders/fail' => 'orders#fail'
resources :orders, only: [:index, :new, :create, :show]
require 'digest/sha1'
class OrdersController < ApplicationController
before_filter :authenticate_user!
before_action :set_order, only: [:show, :edit, :update, :destroy]
skip_before_action :verify_authenticity_token
def index
@orders = Order.all
end
def show
@hashing = {
clientid: POS['clientid'],
oid: Time.now.to_i.to_s,
amount: @order.participation.examination.exam_fees.first.fee.to_s,
okUrl: POS['okUrl'],
failUrl: POS['failUrl'],
islemtipi:POS['islemtipi'],
taksit: '',
rnd: Time.now.to_i.to_s,
}
end
# GET /orders/new
def new
@order = Order.new
end
def create
@order = Order.new(order_params)
@order.user_id = current_user.id
respond_to do |format|
if @order.save
...
else
...
end
end
end
def success
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
def fail
### I would like to create an OrderTransaction here with the incoming parameters!
@transaction = OrderTransaction.new(????????)
end
private
def set_order
@order = Order.find(params[:id])
end
def order_params
params.require(:order).permit(:id, :user_id, :participation_id, :amount, :cardHolderName)
end
end
<%= simple_form_for(@order, html:{class: "well"}, :url => "https://testsanalpos.est.com.tr/servlet/est3Dgate", :method => :post) do |f| %>
<% @hashing.each do |k, v| %>
<%= f.input k, input_html: {name: k, value: v}, as: :hidden %>
<% end %>
<%= f.button :submit, "Approve" %>
<% end %>
”https://testsanalpos.est.com.tr/servlet/est3Dgate“,:method=>:post)do | f |%>
您可以这样做:
#app/controllers/orders_controller.rb
def success
Orders.new(order_params)
end
private
def order_params
params.permit(:client_ip, :etc, :etc)
end
--
这将使用Rails中的常规模式,该模式将只列出您需要的参数。考虑到您的
params散列
中填充了来自远程服务的数据,这应该可以正常工作您将能够像在任何其他rails请求中一样从params散列中获取数据<代码>订单交易。新建(金额:参数[:金额])e.t.c。