【发布时间】:2014-12-22 02:01:42
【问题描述】:
在一个控制器中调用redirect_to controller: 'messages', action: 'index'。
在消息控制器中这样定义索引:
def index
respond_to do |format|
format.json { render :json => Message.all }
format.html { }
end
end
但是,在浏览器级别似乎没有任何内容被重定向,即 /messages 未显示。
想法?
来自日志:
Started POST "/users" for 127.0.0.1 at 2014-12-21 21:15:31 -0500
Processing by UsersController#create as */*
Parameters: {"name"=>"testsg", "phone_number"=>"8593385412"}
[1m[36m (4.0ms)[0m [1mBEGIN[0m
[1m[35mUser Exists (15.6ms)[0m SELECT 1 AS one FROM "users" WHERE "users"."handle" = 'testsg' LIMIT 1
[1m[36mUser Exists (0.0ms)[0m [1mSELECT 1 AS one FROM "users" WHERE "users"."phone_number" = '18593385412' LIMIT 1[0m
[1m[35mSQL (15.6ms)[0m INSERT INTO "users" ("created_at", "handle", "phone_number", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", Mon, 22 Dec 2014 02:15:31 UTC +00:00], ["handle", "testsg"], ["phone_number", "18593385412"], ["updated_at", Mon, 22 Dec 2014 02:15:31 UTC +00:00]]
[1m[36m (31.3ms)[0m [1mCOMMIT[0m
Redirected to http://localhost:3000/messages
Completed 302 Found in 120ms (ActiveRecord: 68.0ms)
控制器代码的其余部分:
class MessagesController < ApplicationController
before_action :subscribe, :only => :index
# put your own credentials here
account_sid = 'XXXXXXXXXX'
auth_token = 'XXXXXXXXXX'
# set up a client to talk to the Twilio REST API
@@client = Twilio::REST::Client.new account_sid, auth_token
def index
respond_to do |format|
format.json { render :json => Message.all }
format.html { }
end
end
def create
params.has_key?(:Body) ? message = params[:Body] : message = params[:message]
@@client.messages.create(
from: 'XXXXXXXXXX',
to: 'XXXXXXXXXX',
body: "#{current_user.handle}: #{message}"
)
render :json => $pubnub.publish(
:channel => 'pubnub_chat',
:callback => lambda {|x|},
:message => {
#:user_id => current_user.id,
:user_id => current_user.id,
:message => "#{message}"
}
)
end
private
def subscribe
puts 'subscribing...'
$pubnub.subscribe(
:channel => 'pubnub_chat',
:callback => $callback
) unless $pubnub.subscription_running?
end
end
重定向的来源:
def create
@user = User.new(handle: params['name'], phone_number: params['phone_number'])
if @user.save
#render :json => [ @photo.to_jq_upload].to_json
session[:user_id] = @user.id
redirect_to controller: 'messages', action: 'index'
else
#render :json => [{ :error => "An error was encountered while processing your photos. Please try again." }], :status => 304
end
end
【问题讨论】:
-
发布 rails 日志和其他控制器源代码。
-
@MaurícioLinhares 已发布!想法?
-
日志显示重定向清楚地发生了,那之后不是还有另一个请求吗?
-
创建用户后在浏览器上看到什么URL?
-
@MaurícioLinhares 同意了,我猜也许不会,但我猜也许应该有? (另外,刚刚发布了重定向的代码!)
标签: ruby-on-rails ruby