我是新手,所以很容易.我创建了一个博客.我已成功实施评论并将其附加到每个帖子.现在......我想在侧边栏中显示所有帖子中最新评论的列表.我认为这里涉及两件事,一个是对comment_controller.rb的更新,然后是来自实际页面的调用.这是注释控制器代码.
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create!(params[:comment])
respond_to do |format|
format.html { redirect_to @post}
format.js
end
end
end
Run Code Online (Sandbox Code Playgroud) 我在写一个动作处理程序route:application:
actions: {
changeFoo(foo) {
// I want to change the fooId queryParam to foo.get('id')
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我可以找到更改查询参数的唯一记录方法是相同transitionTo('some.route', someModel, { queryParams: { ... } }的replaceWith版本.但我在route:application,所以我不知道当前路线的名称.这意味着我不知道第一个论点是什么transitionTo.
是否有其他方法可以使URL成为?fooId=123?
我正在使用MYSQL后端数据库在PHP中编写自己的博客引擎.我的问题是:您如何将用户评论和博客帖子包含在适当的地方?
例如,如果用户点击消息/评论框中的返回键,这将如何转换为在查看评论时在浏览器中显示的新行?
在我的应用中,<body>标记只包含一个<script type="text/x-handlebars>包含我所有视图的标记.Sproutcore 2.0很好地添加了一个jQuery on-document-ready处理程序,它解析这些模板并将它们呈现回DOM.
我想在其中一个视图渲染后立即调用一个函数.问题是重新插入是异步发生的,所以我不知道视图何时可用.
<body>
<script type="text/x-handlebars">
...
{{view "MyApp.TweetInputView"}}
...
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
视图:
MyApp.TweetInputView = SC.View.extend({
init: function() {
// act like a singleton
MyApp.TweetInputView.instance = this;
return this._super();
},
focus: function() {
...
this.$().focus();
}
});
Run Code Online (Sandbox Code Playgroud)
初始化
// if the URL is /tweets/new, focus on the tweet input view
$(function() {
if (window.location.pathname === '/tweets/new') {
// doesn't work, because the view hasn't been created yet:
MyApp.TweetInputView.instance.focus();
}
});
Run Code Online (Sandbox Code Playgroud)
我也试过SC.run.schedule('render', …
我有一个类,其中查找实例很昂贵,因此实例被缓存:
class Foo
def self.find(id)
Rails.cache.fetch("Foo.#{id}") do
// some expensive lookup, like an HTTParty request, or a long SQL query
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
这有效,直到Foos有相关的Foos:
class Foo
def children
@child_foo_ids.map { |id| Foo.find(id) }
end
end
Run Code Online (Sandbox Code Playgroud)
我想使用||=缓存来节省重复的旅行:
class Foo
def children
@children ||= @child_foo_ids.map { |id| Foo.find(id) }
end
end
Run Code Online (Sandbox Code Playgroud)
但Rails.cache冻结了找到的Foos,所以在创建和缓存对象后我无法设置实例变量.(即这种方法提出了一个TypeError.)
一种解决方案是parent在我第一次执行昂贵的查找时预先获取,但是当我只需要一个或两个实例时,最终可能会加载一个巨大的对象图.
我有一个Ruby-on-Rails模型:
class Candidate < ActiveRecord::Base
validates_presence_of :application_essay
validate :validate_length_of_application_essay
protected
def validate_length_of_application_essay
return if application_essay.blank? # don't add a second error message if they didn't fill it out
errors.add(:application_essay, :too_long), unless ...
end
end
Run Code Online (Sandbox Code Playgroud)
没有进入C,检查application_essay包含不超过500字的最快方法是什么?您可以假设大多数论文至少有200个单词,不可能超过5000个单词,并且是英文(或伪英语有时称为"business-ese").您也可以将任何您想要的内容归类为"单词",只要您的分类对于典型用户来说是显而易见的.(注意:这不是讨论什么是"典型用户":)的地方)
我正在尝试测试一个构建HashDict的算法,但我不能让我的"预期" 实际上等于我的"实际".例如,
iex> expected = HashDict.new([ key: 12 ])
#HashDict<[foo: 12]>
iex> actual = Dict.put(HashDict.new, "key", 12)
#HashDict<[{"foo", 12}]>
Run Code Online (Sandbox Code Playgroud)
HashDict通过以更加钝的方式声明它,我可以获得文字中的第二个"风格" :
iex> HashDict.new([ { "key", 12 } ])
#HashDict<[{"foo", 12}]>
Run Code Online (Sandbox Code Playgroud)
我非常喜欢我的测试用例的简单Dict文字语法,但是我的实现以递归方式构建了Dict.我怎样才能使这些相等?
ruby ×3
blogs ×2
caching ×1
comments ×1
elixir ×1
ember-router ×1
ember.js ×1
javascript ×1
newline ×1
php ×1
sproutcore ×1
sproutcore-2 ×1
validation ×1
word-count ×1