我的rails应用程序正在调用一个不存在的方法。
我调用的方法的路线是:
get_json GET /get_json(.:format)data#get_json
我的控制器代码:
class DataController < ApplicationController
before_filter :authenticate
skip_before_filter :verify_authenticity_token
protected
def authenticate
token = params[:token]
@user = User.find_by(token: token)
if @user.nil?
render nothing: true, status: :unauthorized
return
end
end
def get_json
@users = User.all
@owners = Owner.all
@tags=Tag.all
@ideas=Idea.all
@votes=Vote.all
@votings=Voting.all
end
end
如果我对此提出请求。我得到一个空的Json字符串:
{"tags":[],"ideas":[],"owners":[],"votes":[],"votings":[],"users":[]}
这是我的数据视图(getjson.json.jbuilder):
json.tags @tags do |tag|
json.extract! tag, :id, :typ, :text
end
json.ideas @ideas do |idea|
json.extract! idea, :id, :title, :text, :owner_id, :voting_id, :voteCount
json.tags idea.tags do |tag|
json.extract! tag, :id
end
end
json.owners @owners do |owner|
json.extract! owner, :id, :name, :user_id
end
json.votes @votes do |vote|
json.extract! vote, :id, :kommentar, :owner_id, :voting_id, :idea_id
end
json.votings @votings do |voting|
json.extract! voting, :id, :status
end
json.users @users do |user|
json.extract! user, :id, :name, :token, :owner_id, :isLoggedIn
end
我们不知道问题是什么。
答案 0 :(得分:0)
不要将保护放在控制器之上。 超越它的一切都受到保护。这就是它无法找到行动的原因。
像这样: class DataController < ApplicationController
before_filter :authenticate
skip_before_filter :verify_authenticity_token
def get_json
@users = User.all
@owners = Owner.all
@tags=Tag.all
@ideas=Idea.all
@votes=Vote.all
@votings=Voting.all
end
protected
def authenticate
token = params[:token]
@user = User.find_by(token: token)
if @user.nil?
render nothing: true, status: :unauthorized
return
end
end
end