小编kwy*_*g11的帖子

EOF错误javascript_include_tag Rails 4

我收到一个错误,我似乎无法弄清楚原因:

EOF Error end of file reached 
Run Code Online (Sandbox Code Playgroud)

从/app/views/layouts/application.html.erb第6行调用:

<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)

在ruby中,EOF错误是IOError的子类,并且由到达文件末尾的IO操作引发.

这是我到目前为止发现的一些内容:

使用:

<%= javascript_include_tag :defaults, "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)

...要么...

<%= javascript_include_tag :all, "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)

甚至通过javascript_include_tag工作列出单个js文件以删除EOF错误.

我认为这可能是由一些sprockets指令引起的,所以我删除了application.js中的所有指令.这并没有改变任何事情.

运行rake资产:预编译也给了我:

rake aborted!
end of file reached 
Run Code Online (Sandbox Code Playgroud)

运行git diff在应用程序/资产/ JavaScript的目录显示1两件事,可能在我最近被编辑.js文件是值得注意的:

+$(document).on('ready page:load', function() {
+
+     // some code I had written
+
+});
\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)

那"文件末尾没有新行"有点......我以前从未见过.但是,我刚刚在同一个文件的末尾添加了一个换行符并提交了更改,而该注释现在已从diff中消失了.

编辑:将我的浏览器指向localhost:3000/assets/application.js给了我这个:

throw Error("EOFError: end of file reached")
Run Code Online (Sandbox Code Playgroud)

我彻底难过,一直试图调试这一整天.为什么会出现此错误?这是我运行rake资产时的堆栈跟踪:precompile:

rake aborted!
end …
Run Code Online (Sandbox Code Playgroud)

javascript ruby git ruby-on-rails ruby-on-rails-4

17
推荐指数
2
解决办法
3862
查看次数

iCheck复选框不显示

我无法在任何浏览器中显示iCheck iCheckbox插件.

这是一个jSFiddle.iCheck依赖于jQuery 1.7+.

http://jsfiddle.net/jmj3M/2/

我没有任何选项初始化它:

$(".ex-f").iCheck();
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,如果您检查DOM,则输入元素将被iCheckbox div包装.但是,<input><ins>元素的不透明度都设置为0.

通过jQuery改变它们的不透明度,你得到这个:http://jsfiddle.net/buRq7/

不幸的是,它仍然无效.有没有人有任何建议或经验让这个工作?

我正在使用rails 4和资产管道.

编辑: 我只是意识到我没有选择库(纯JS)作为的jsfiddle框架选项,似乎即使不改变不透明度的工作(见:http://jsfiddle.net/buRq7/5/).但是,文档明确说明它依赖于jQuery(或Zepto).将框架选项切换到jQuery 1.10.1会导致iCheckbox再次无法运行...不确定为什么会这样.

checkbox jquery ruby-on-rails asset-pipeline icheck

10
推荐指数
2
解决办法
1万
查看次数

Rails 3.1.3使用anchor属性和posts_to标签从posts/index到posts/show/id不起作用

我在我的帖子/索引视图上使用了link_to标签,并希望将其链接到我的帖子/ show/id视图,并使用一个锚点向下滚动到评论表单.出于某种原因,我无法让锚点工作.这是我的代码:

在帖子/索引中

<%= link_to 'Add a Comment', post, :anchor => 'comment_form' %>
Run Code Online (Sandbox Code Playgroud)

这无法将#符号附加到链接的末尾,因此它只是localhost:3000/posts/id.我也为link_to尝试过很多变种,包括:

<%= link_to 'Add a Comment', post(:anchor => 'comment_form' %>
Run Code Online (Sandbox Code Playgroud)

<%= link_to 'Add a Comment', :controller => 'posts', :action => 'show', :id => @post, :anchor => 'comment_form' %>
Run Code Online (Sandbox Code Playgroud)

但我没有运气.

这是我的帖子#show action:

  def show
    @post = Post.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @post }
    end
  end
Run Code Online (Sandbox Code Playgroud)

这里是我希望锚点滚动到的帖子/显示视图:

<h2><a name="comment_form" id="comment_form">Add a comment:</a></h2>
Run Code Online (Sandbox Code Playgroud)

此外,如果我链接到索引页面上的某些内容,上面的任何一个都可以工作,因为我可以看到散列#已被附加到输出的url.由于某种原因,在尝试链接到节目页面时它无法正常工作.对此有何帮助?

anchor ruby-on-rails link-to rails-3.1

7
推荐指数
1
解决办法
8435
查看次数

Rails 4使用数组数据类型错误查询postgresql列

我试图在Rails 4中查询带有postgresql数组数据类型的列的表.

这是表模式:

create_table "db_of_exercises", force: true do |t|
    t.text     "preparation"
    t.text     "execution"
    t.string   "category"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "name"
    t.string   "body_part",      default: [], array: true
    t.hstore   "muscle_groups"
    t.string   "equipment_type", default: [], array: true
  end
Run Code Online (Sandbox Code Playgroud)

以下查询有效:

SELECT * FROM db_of_exercises WHERE ('Arms') = ANY (body_part);
Run Code Online (Sandbox Code Playgroud)

但是,此查询不会:

SELECT * FROM db_of_exercises WHERE ('Arms', 'Chest') = ANY (body_part);
Run Code Online (Sandbox Code Playgroud)

它抛出此错误:

ERROR:  operator does not exist: record = character varying
Run Code Online (Sandbox Code Playgroud)

这对我来说也不起作用:

SELECT * FROM "db_of_exercises" WHERE "body_part" IN ('Arms', 'Chest');
Run Code Online (Sandbox Code Playgroud)

这引发了这个错误:

ERROR:  array …
Run Code Online (Sandbox Code Playgroud)

sql ruby-on-rails postgresql-9.2 ruby-on-rails-4

4
推荐指数
2
解决办法
3051
查看次数

如何从has_many中的数组中获取单个属性:通过关联(用户/朋友模型)

在我的用户模型中,我有以下内容:

class User < ActiveRecord::Base
  has_many :friendships, dependent: :destroy
  has_many :friends, :class_name => "User", :foreign_key => "friend_id"

  has_many :pending_friends, 
   :through => :friendships, 
   :conditions => "status = 'pending'", 
   :foreign_key => "user_id", 
   :source => :friend

  has_many :requested_friends, 
   :through => :friendships,
   :source => :friend, 
   :conditions => "status = 'requested'"

  def friends
    direct_friends | inverse_friends
  end
Run Code Online (Sandbox Code Playgroud)

在我的友谊模型中,我有以下内容:

class Friendship < ActiveRecord::Base
 belongs_to :user
 belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
Run Code Online (Sandbox Code Playgroud)

在我看来,我创建了一个用户朋友的数组,如下所示.此代码使用来自朋友的"用户"数据库模型属性的所有数据来工作和填充数组.

  User.first.friends
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够呼叫用户的朋友的名字.那么,例如,我不应该做这样的事情吗?

    User.first.friends.map(&:name)
Run Code Online (Sandbox Code Playgroud)

如何获得仅包含朋友姓名的数组,而不是所有朋友的用户属性?我也很感激,如果有人能告诉我为什么.使用了第一个(我从这里得到了它:Rails从Friends模型中调用用户记录),因为它不仅仅获取用户朋友的第一个实例(它获取所有实例) ).为什么这样做:

 User.friends 
Run Code Online (Sandbox Code Playgroud)

返回一个空数组?

associations ruby-on-rails-3

0
推荐指数
1
解决办法
2049
查看次数