我正在使用Dragonfly处理Rails 3.1应用程序上的图像.我正在努力通过网址将图像分配给模型.
我有一个工作正常的形式:
<%= form_for [@word, @game, @picture], :html => {:multipart => true} do |f| %>
<%= f.hidden_field :retained_image %>
<p>
<%= f.label :image, "upload pic" %><br />
<%= f.file_field :image %>
</p>
<p>
<%= f.label :image_url, "or pic URL" %><br />
<%= f.text_field :image_url %>
</p>
<p>
<% if @picture.image_uid? %>
<label>Remove Picture?</label>
<%= f.check_box :remove_image %>
<% end %>
</p>
<p><%= f.submit %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
Dragonfly的文档说明:
Dragonfly提供了一个直接从url分配的访问器:
@album.cover_image_url = 'http://some.url/file.jpg'
Run Code Online (Sandbox Code Playgroud)
但是当我在我的控制台中尝试时:
=> #<Picture id: nil, game_id: nil, …Run Code Online (Sandbox Code Playgroud) 我有一个循环链接到集合中的每个项目:
<% current_user.projects.all.each do |p| %>
<%= link_to p.name, project_path(p), :class => current_class?(project_path(p)), :id => p.theme %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
现在,我除了id之外还为锚点分配一个类,所以我可以应用一些CSS.实际上,对于我来说,将它作为一个双重锚点更有意义.有没有办法使用link_to帮助器将两个类分配给同一个对象?
我在嵌套源Product上遇到了与destroy方法有关的问题,它与Orders绑定.
在尝试销毁某个项目后,我将用户重定向到我的order_products_url.我收到以下路由错误:
No route matches "/orders/1/products"
Run Code Online (Sandbox Code Playgroud)
我的destroy方法看起来像这样:
def destroy
@product = Product.find(params[:id])
@order = Order.find(params[:order_id])
@product.destroy
respond_to do |format|
format.html { redirect_to(order_products_url) }
format.xml { head :ok }
end
end
Run Code Online (Sandbox Code Playgroud)
并在routes.rb中:
resources :orders do
resources :products, :controller => "products"
end
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑的原因是我的产品更新方法,我正确地将用户重定向到order_products_url而没有问题.我不明白为什么它在那里工作但不在这里.
谢谢
我正在寻找一个具有分层帐户计划的应用程序.我有免费账户和高级账户.
我正在寻找的是一个很好的插件,可以帮助我处理这种限制/授权.我正在看CanCan,因为它似乎是事实,贝茨先生很棒,但我有一个问题.
使用CanCan,您是否可以说,限制用户完成创建操作的时间?我想这样做一个免费帐户只能创建一定数量的项目或其他模型对象,这可能是CanCan吗?
无论如何,我只是想要一些帮助开始使用Authorization插件,更好的onces内置了限制活动的方法.
我想知道是否有办法在js.erb文件中进行重定向.我正在转换一个应用程序以使用ajax,所以它感觉更快,但我的创建操作将用户留在索引页面上.
我可以这样做:
window.location.replace("/model/@object.id")
Run Code Online (Sandbox Code Playgroud)
但是如果有可能的话,我更愿意做一个完整的redirect_to model_path(@object)?
我正在使用Rails通过react-rails(1.0.0pre)试验React.js,并且在渲染依赖于窗口大小的响应元素时遇到了一些麻烦.每当我创建一个使用窗口的组件时,我都会收到以下错误:[React::Renderer] ReferenceError: window is not defined尝试将组件渲染到我的Rails视图中的字符串时.例如,我的组件:
/** @jsx React.DOM */
var Example = React.createClass({
getInitialState: function() {
return {
windowWidth: $(window).width()
};
},
render: function () {
return (
<div className="example-wrapper">
{this.props.label}
{this.state.windowWidth}
</div>
);
}
});
Run Code Online (Sandbox Code Playgroud)
以及我对道具的看法:
<%= react_component('Example', {name: 'Window width is:'}, { prerender: true }) %>
Run Code Online (Sandbox Code Playgroud)
是否有可能在React的虚拟DOM中引用该窗口?
我有一个为我的模型Link编写的搜索方法.
在实施投票之前,我已经能够毫无错误地调用此方法.例如,这些都有效:
Link.search(params[:search])
current_user.links.search(params[:search])
current_account.links.search(params[:search])
Run Code Online (Sandbox Code Playgroud)
以下不起作用:
@links = current_user.votes.collect {|vote| vote.voteable}
@favorites = @links.search(params[:search])
Run Code Online (Sandbox Code Playgroud)
并返回此错误:
undefined method `search' for #<Array:0x00000006919ac8>
Run Code Online (Sandbox Code Playgroud)
我在控制台中做了一些测试,看看我的课程是否错误:
links = user.votes.map {|vote| vote.voteable}
links.class
=> Array
links.first.class
=> Link
Run Code Online (Sandbox Code Playgroud)
这应该与我的工作示例没有什么不同:
user.links.class
=> Array
user.links.first.class
=> Link
Run Code Online (Sandbox Code Playgroud)
我想也许错误来自于我在数组上调用搜索而不是链接.但在之前的例子中,我也在一个数组上调用它.
我使用vote_fu处理投票,从而投票/投票.
我有两个数组,我试图将它们相交,所以我可以运行一个范围,我的rails代码看起来像:
def index
@lists = current_user.lists
@tasks = @lists.collect{|list| list.tasks}
@search_tasks = Task.search(params[:search])
@user_tasks = (@tasks & @search_tasks).now_high
end
Run Code Online (Sandbox Code Playgroud)
在我的浏览器中,我收到以下错误:
未定义的方法`now_high'表示[]:Array
所以这就是我的范围:
scope :now_high, lambda { where("due_date < ? AND importance = ? AND complete = ?", Date.today + 2.days, 'high', false) }
Run Code Online (Sandbox Code Playgroud)
当我说,只在Task.now_high上执行时,这个范围有效 - 我认为问题是我的两个数组相交,我不知道为什么它每次都是空的.
在控制台中:
current_user = User.first
=> #<User id: 1, name:...
@lists = current_user.lists
=> [#<List id: 1, name: "Working on sharing lists"... #gets the lists that belong to the user
@tasks = @lists.collect{|list| list.tasks}
=> …Run Code Online (Sandbox Code Playgroud) 我已经使用Ryan Bate的Ajax剧集搜索来编写一些基本的搜索功能.
它基本上做的是从表单中获取一个字符串,并通过模型方法执行类似的查询.我要做的是有条件地搜索数据库中的不同列(due_date和name),并使用我用Date类解析的单个字符串.这样,用户可以按日期搜索项目,或者使用相同的表单搜索项目名称.我的方法看起来像:
def self.search(search)
if search
search_date = Date.parse(search) rescue nil
end
if search_date
where('due_date = ?', search_date)
elsif search
where('UPPER(name) LIKE ?', "%#{search.upcase}%")
else
scoped
end
end
Run Code Online (Sandbox Code Playgroud)
这就像用户键入日期一样,Date类能够解析它,在数据库中查找具有该due_date的任何对象.问题是,如果它是一个日期并且它能够被解析,那么搜索速度非常慢.
我想知道是否有人有办法加快速度.Date类是如此之慢吗?我应该有两种不同的方法吗?或者我应该完全重写我的搜索?
我在轨道项目中通过zurb-foundation gem使用Zurb Foundation 3.在我尝试添加导航栏之前,一切进展顺利:
<body>
<div id="container" class="twelve columns">
<div class="fixed contain-to-grid">
<nav class="top-bar">
<ul>
<li class="name"><h1><%= link_to "Home", root_path %></h1></li>
</ul>
<section>
<ul class="left">
<li><a href="#">Left</a></li>
</ul>
<ul class="right">
<li><a href="#">Right</a></li>
</ul>
</section>
</nav>
</div>
Run Code Online (Sandbox Code Playgroud)
看起来像:

我没有覆盖除了颜色之外的任何zurb样式,我的假设是它看起来非常类似于文档http://foundation.zurb.com/docs/navigation.php中的第一个例子但是看起来似乎没有是这样的.该文档还提到了javascript依赖项,但这些依赖项.
任何人都有任何想法如何开始让这看起来很漂亮?
编辑:
将行添加到第一个列表,如下所示:
<ul>
<li class="name"><h1><%= link_to "Home", root_path %></h1></li>
<li class="toggle-topbar"><a href="#"></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
呈现这个:

检查元素以查看是否显示了内容,导航JS就在那里:
(function ($){
$.fn.foundationNavigation = function (options) {
var lockNavBar = false;
// Windows Phone, sadly, does not register touch events :(
if (Modernizr.touch || …Run Code Online (Sandbox Code Playgroud) ruby ×4
activerecord ×1
arrays ×1
cancan ×1
css ×1
javascript ×1
nested ×1
paperclip ×1
reactjs ×1
routing ×1