小编bga*_*oci的帖子

验证字符串的最小和最大长度,但允许它为空

我有一个我想验证的字段.我希望该字段可以留空,但如果用户输入数据,我希望它以某种格式.目前我在模型中使用以下验证,但这不允许用户将其留空:

validates_length_of :foo, :maximum => 5
validates_length_of :foo, :minimum => 5
Run Code Online (Sandbox Code Playgroud)

我如何写这个来实现我的目标?

ruby validation model ruby-on-rails

75
推荐指数
4
解决办法
7万
查看次数

如何为f.select表单字段设置空白值

我使用以下内容允许我的用户在他们的个人资料中选择他们的性别.

<%= f.select (:sex, %w{ Male Female }) %>
Run Code Online (Sandbox Code Playgroud)

如果没有将任何内容传递给user.sex列,我将如何创建列表默认的空白值?我只是将男性或女性作为一个字符串传递.

目的是我想要一个空白值,所以验证可以确保他们知道他们必须选择它.

ruby select ruby-on-rails

58
推荐指数
2
解决办法
5万
查看次数

为什么在安装PaperClip时会得到"has_attached_file"的"未定义方法"?

我刚刚安装了Paperclip的插件,我收到以下错误消息,但我不确定原因:

NoMethodError (undefined method `has_attached_file' for #<Class:0x10338acd0>):
  /Users/bgadoci/.gem/ruby/1.8/gems/will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in `method_missing'
  app/models/post.rb:2
  app/controllers/posts_controller.rb:50:in `show'
Run Code Online (Sandbox Code Playgroud)

它引用了will_paginate gem.从我能找到的,似乎我PostsController#index或者以前尝试安装gem而不是插件有问题,在这种情况下我读过我应该能够以/config/environments.rb某种方式通过文件来修复.

我之前认为以前的gem安装并不重要,因为我在安装插件之前删除了旧版本的网站.在该站点的当前版本中,我显示该表已在迁移后使用Paperclip列进行更新.这是我的代码:

PostsConroller#show:

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

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

Post 模型:

class Post < ActiveRecord::Base

  has_attached_file :photo
  validates_presence_of :body, :title
  has_many :comments, :dependent => :destroy
  has_many :tags, :dependent => :destroy
  has_many :votes, :dependent => :destroy
  belongs_to :user
  after_create :self_vote
      def self_vote
       # I am assuming you have a …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip

52
推荐指数
2
解决办法
3万
查看次数

上传图片Ruby on Rails

我是新手,如果这很容易就很抱歉.我想知道上传图片并在Ruby on Rails中显示它们的最佳方法.我有一个博客,并希望在创建帖子时可以选择附加图片.

ruby blogs file-upload ruby-on-rails

38
推荐指数
4
解决办法
6万
查看次数

varchar Ruby on Rails的迁移问题

我创建了一个包含"note"列的新表.默认值是varchar(255)我相信但是我希望这个列是文本区域而不是字段并允许更多数据.我想我会在ActiveRecord :: Migration文件中进行此更改,但我对格式感到好奇.我只是将varchar(255)更改为varchar(1000)吗?(如果是这样的格式是什么?

def self.up
    create_table :notes do |t|
      t.string :note :varchar(1000)
    end
Run Code Online (Sandbox Code Playgroud)

这是正确的格式吗?此外,如何将输入字段设置为多行.对不起,如果这很容易,但我是编程和RoR的新手.谢谢.

migration activerecord ruby-on-rails rails-migrations

35
推荐指数
4
解决办法
4万
查看次数

限制视图中的字符/单词 - ruby​​ on rails

我在Ruby on Rails上构建的一个非常简单的博客应用程序的主页上显示最近的评论.我想限制从comments表的"body"列显示的字符数.我假设我可以在<%= h comment.body%>的代码末尾添加一些东西,但我不知道那将是什么,因为我是Ruby和Rails的新手.

这是我在/views/posts/index.html.erb文件中的代码:

<% Comment.find(:all, :order => 'created_at DESC', :limit => 5).each do |comment| -%>
    <p>
        <%=h comment.name %> commented on 
        <%= link_to h(comment.post.title), comment.post %><br/>
        <%=h comment.body %>
        <i> <%= time_ago_in_words(comment.created_at) %> ago</i>
    </p>
    <% end -%>
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

31
推荐指数
3
解决办法
3万
查看次数

将日期时间转换为月,日和年?

我似乎无法找到这个,我觉得它应该很容易.在Ruby on Rails中,我该如何处理:

2010-06-14 19:01:00 UTC
Run Code Online (Sandbox Code Playgroud)

把它变成

June 14th, 2010
Run Code Online (Sandbox Code Playgroud)

我可以不只是在视图中使用帮助器吗?

ruby ruby-on-rails

31
推荐指数
3
解决办法
4万
查看次数

更改索引页面 - Ruby on Rails

我是新手,所以很容易.我开发了自己的博客并成功部署了它.整个应用程序都基于post_controller.我想知道如何将用户路径重新路由到默认的post_controller与app控制器.

为了说明,如果你去http://mylifebattlecry.heroku.com,你会看到默认的rails页面.如果你去http://mylifebattlecry.heroku.com/posts,你会看到该应用程序.完成此操作后,我将更改我的http://www.mylifebattlecry.com域名以映射到Heroku,但需要知道如何将/ posts发送到访问者的位置.

ruby indexing routing blogs ruby-on-rails

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

在Rails上创建博客ruby - 问题删除评论

因为我总是打字,所以我对轨道和编程很新,所以很容易.提前致谢.

我已成功地遵循Ryan Bates的初始教程,了解如何在15分钟内构建博客.如果您不知道本教程将指导您创建帖子并允许对这些帖子发表评论.它甚至通过在帖子show.html.erb页面上创建和显示评论来介绍AJAX.一切都很棒.

这是打嗝,当Ryan带你通过本教程时他会清除comments_controller并只显示创建注释的代码.我试图添加编辑和销毁评论的能力.似乎无法让它工作,不断删除实际的帖子而不是评论(日志显示我一直向PostsController发送DELETE请求).这是我的代码:

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

 def destroy
    @comment = Comment.find(params[:id])
    @comment.destroy

    respond_to do |format|
      format.html { redirect_to(posts_url) }
      format.xml  { head :ok }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

/views/posts/show.html.erb

    <%= render :partial => @post %>

    <p>
        <%= link_to 'Edit', edit_post_path (@post) %> |
        <%= link_to 'Destroy', @post, :method => :delete, :confirm => "Are you sure?" %> |
        <%= …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

9
推荐指数
1
解决办法
3024
查看次数

在Ruby on Rails中搜索 - 如何搜索输入的每个单词而不是确切的字符串?

我已经在rails上构建了一个带ruby的博客应用程序,我正在尝试实现搜索功能.博客应用程序允许用户标记帖子.标签是在自己的表格中创建的belong_to :post.创建标记时,标记表中的记录也是如此,其中标记的名称为tag_name并由post_id关联.标签是字符串.

我试图允许用户以任何顺序搜索任何单词tag_name.这就是我的意思.让我们说一个特定的帖子有一个标签是'红宝石代码控制器'.在我当前的搜索功能中,如果用户搜索"ruby","ruby code"或"ruby code controller",则会找到该标记.如果用户键入'ruby controller',则无法找到.

基本上我所说的是我希望在搜索中输入的每个单词都被搜索,而不一定是输入到搜索中的"字符串".

我一直在尝试提供多个文本字段以允许用户输入多个单词,并且还在使用下面的代码,但似乎无法完成上述操作.我是ruby和rails的新手很抱歉,如果这是一个明显的问题,在安装gem或插件之前,我想我会检查是否有一个简单的修复.这是我的代码:

查看:/views/tags/index.html.erb

<% form_tag tags_path, :method => 'get' do %>
    <p>
      <%= text_field_tag :search, params[:search], :class => "textfield-search" %>
      <%= submit_tag "Search", :name => nil, :class => "search-button" %>
    </p>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

TagsController

 def index
    @tags = Tag.search(params[:search]).paginate :page => params[:page], :per_page => 5
    @tagsearch = Tag.search(params[:search])
    @tag_counts = Tag.count(:group => :tag_name, 
       :order => 'count_all DESC', :limit => 100)

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml …
Run Code Online (Sandbox Code Playgroud)

ruby search ruby-on-rails

9
推荐指数
1
解决办法
9319
查看次数