在一个控制器中调用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
答案 0 :(得分:0)
您使用了redirect_to操作:“course_page1”,格式:“html”和 回来哪个不对。如果它是一个重定向将正常工作 html请求但不是ajax。因此,如果您想要重定向,尽管事实 请求是一个ajax,使用可能是这样的
format.js {render:js =&gt; “window.location.href = '#{course_page_path}''}}
Rails console shows view is rendered, but doesn't render in browser