首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问引用表单参数的gon变量

访问引用表单参数的gon变量
EN

Stack Overflow用户
提问于 2017-06-18 15:31:19
回答 2查看 185关注 0票数 0

我正在尝试构建一个简单的页面,它可以搜索github用户并在页面上显示他们的追随者,而不需要刷新页面。我使用Octokit访问Github api,使用Gon创建可以在js.erb文件中访问的控制器变量。我可以访问设置为字符串的gon变量,但不能访问引用查询参数的变量。我该怎么做呢?

代码语言:javascript
复制
class UsersController < ApplicationController
  def search
    github = Octokit::Client.new(:login => 'monzelb', :password => "#{Rails.application.secrets.github_key}")
    @query = params[:query]
    gon.query = @query
    @followers = github.followers("#{@query}")
    gon.followers = @followers
    @blah = "blah"
    gon.blah = @blah
    if @query
      respond_to do |format|
        format.js 
        format.html 
      end
    end
  end
end

users/search.js.erb

代码语言:javascript
复制
console.log(gon.followers.first.login) # => nil
console.log(gon.blah) # => "blah"
$('body').append('<li class="result media"><%= j @followers.first.login %></li><img src= "<%= j @followers.first.avatar_url %>" class="result img">');

提交表单时,jquery成功地将第一个关注者的图像和姓名添加到页面,但我需要将他们的所有关注者都添加到页面。我认为Gon会是一个很好的方法来做这件事,但它似乎无法访问查询。

EN

回答 2

Stack Overflow用户

发布于 2017-06-18 19:11:22

我不知道Js,Gon,或者Octokit,所以我不确定这个答案会对你有帮助。

然而,您说您只看到附加的第一个追随者。但这是完全正常的。这就是你的JS所做的:

代码语言:javascript
复制
$('body').append('<li class="result media"><%= j @followers.first.login %></li><img src= "<%= j @followers.first.avatar_url %>" class="result img">');

你可以在Ruby中尝试一种解决方案,比如:

代码语言:javascript
复制
<% @followers.each do |follower| %>
$('body').append('<li class="result media"><%= j follower.login %></li><img src= "<%= j follower.avatar_url %>" class="result img">');
<% end %>

不确定这是否会起作用。但在任何情况下,这可能都可以用JS而不是Ruby来完成……

票数 0
EN

Stack Overflow用户

发布于 2017-06-19 10:06:01

我不知道你为什么要这么做:

代码语言:javascript
复制
@query = params[:query]
gon.query = @query
@followers = github.followers("#{@query}")
gon.followers = @followers
@blah = "blah"
gon.blah = @blah

相反,您应该保存@query@followers@blah实例变量,然后将它们推送到gon

所以就像这样:

代码语言:javascript
复制
gon.push({
   query: @query,
   followers: @followers,
   blah: @blah
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44612704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档