我有一个'new'表单,可以在post模型中验证.当验证器启动时,它会呈现错误.
新的帖子页面路径位于'/ posts/new'
在验证时,新的帖子页面路径位于'/ posts'..我需要它回到'/ posts/new'.
这是我的控制器:
def create
@post = current_user.posts.build(params[:post])
if @post.save
redirect_to public_post_page_path(@post.public_url)
else
render :action => :new
end
end
Run Code Online (Sandbox Code Playgroud)
我觉得这可能与我的表格有关.所以这是formtastic的第一行:
<%= semantic_form_for [:student, post], :html => {:id => "post_form"} do |form| %>
Run Code Online (Sandbox Code Playgroud) 我有一个可以创建帖子的模型用户
User
has_many :posts
Post
belongs_to :user
Run Code Online (Sandbox Code Playgroud)
但是,我还想让用户将帖子保存为书签.所以我添加了以下内容:
Bookmark
belongs_to :post
belongs_to :user
User
has_many :posts
has_many :posts, :through => :bookmarks
Post
belongs_to :user
has_many :posts, :through => :bookmarks
Run Code Online (Sandbox Code Playgroud)
这可能不对,因为当我执行@ user.posts时,它现在变得模棱两可.这是指用户撰写的帖子还是用户收藏的帖子?
你是如何解决这个问题的?
我有一个范围来限制所有questions用户是否投票.在模型中:
scope :answered_by, lambda {|u| joins(:votes).where("votes.user_id = ?", u.id) }
scope :unanswered_by, lambda {|u| joins(:votes).where("votes.user_id != ?", u.id) }
Run Code Online (Sandbox Code Playgroud)
在控制器中,我这样称呼它们:
@answered = Question.answered_by(current_user)
@unanswered = Question.unanswered_by(current_user)
Run Code Online (Sandbox Code Playgroud)
unanswered_by范围不正确.我基本上想找到没有投票的地方.相反,它试图寻找是否存在与当前用户不相等的投票.任何想法如何返回不存在连接的所有记录?
我正在使用ROR制作基本讨论板.当用户发布对消息的响应时,输入文本区域使用标记预先填充引号中的消息:[QUOTE].因此格式为:
[QUOTE]引用的消息在这里[/ QUOTE]
目前,我有一个简单的解决方案,只要[QUOTE]或[/ QUOTE]仍然存在,就可以使用message.sub('[QUOTE]','html在这里')用HTML替换[QUOTE]和[/ QUOTE] .当我回复引用的消息时,我将HTML转换回[QUOTE]标签,以确保预先填充的输入textarea中没有HTML.因此,引用的引用将如下所示:
[QUOTE] [QUOTE]引用此处留言[/ QUOTE] [/ QUOTE]
这是问题所在.如果我再次运行当前的方法,我将获得重复的HTML字段,如:
<div class='test'><div class='test'>quoted message goes here</div></div>
Run Code Online (Sandbox Code Playgroud)
相反,我希望能够有一个看起来像这样的解决方案:
<div class='test1'><div class='test2'>quoted message goes here</div></div>
Run Code Online (Sandbox Code Playgroud)
等等......关于循环这个的最佳方法的任何建议?
我想尽量减少对Youtube API的调用,因为这些数据不会经常刷新.当我尝试缓存此时:
Rails.cache.fetch("youtube-#{@yt_name}", :expires_in => 1.day) do
@youtube_doc = Nokogiri::XML(open("https://gdata.youtube.com/feeds/api/users/#{@yt_name}/uploads"))
end
Run Code Online (Sandbox Code Playgroud)
我在heroku中收到错误:
Marshalling error for key 'youtube-NAME': no marshal_dump is defined for class Nokogiri::XML::NodeSet
You are trying to cache a Ruby object which cannot be serialized to memcached.
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有Forum和ForumTagHABTM的关系.我还有一个名为变量的数组@tags.此数组包含一些ForumTags的名称.我希望能够查询并查找具有该数组所有值的所有论坛.我目前有:
@forums = Forum.joines(:forum_tags).where(:forum_tags => {:name => @tags}).includes(:forum_tags).all
但是,这将返回阵列中至少具有一个值的所有论坛.