我收到一个错误,我似乎无法弄清楚原因:
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) 我无法在任何浏览器中显示iCheck iCheckbox插件.
这是一个jSFiddle.iCheck依赖于jQuery 1.7+.
我没有任何选项初始化它:
$(".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再次无法运行...不确定为什么会这样.
我在我的帖子/索引视图上使用了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.由于某种原因,在尝试链接到节目页面时它无法正常工作.对此有何帮助?
我试图在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) 在我的用户模型中,我有以下内容:
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)
返回一个空数组?