我正在实现跟踪用户阅读的文章的功能.
create_table "article", :force => true do |t|
t.string "title"
t.text "content"
end
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的迁移:
create_table :user_views do |t|
t.integer :user_id
t.integer :article_id
end
Run Code Online (Sandbox Code Playgroud)
始终会查询user_views表以查找两列,而不仅仅查找一列.我的问题是我的索引应该是什么样子.这些表的顺序是否存在差异,是否应该有更多选项或其他.我的目标数据库是Postgres.
add_index(:user_views, [:article_id, :user_id])
Run Code Online (Sandbox Code Playgroud)
谢谢.
更新:
因为只有一行在两列中都包含相同的值(因为在知道user_id是否读过article_id时),我应该考虑:unique选项吗?如果我没有弄错,那意味着我不必自己进行任何检查,只需在用户访问文章时插入即可.
在我的rails应用程序中,我需要验证用户提供的URL是否真的是一个URL.我只关心HTTP协议(也许是HTTPS,我根本没有考虑过这一点),这让我相信在rails中可能已经存在一些可以为我工作的东西.
如果不是:你能推荐一个正则表达式字符串吗?我在google搜索后发现了一些,但根据用户评论他们似乎都有一两个问题.
谢谢
我知道有类似的问题,但我还没有找到一个好的答案.我需要做的是将一个对象的描述发送到我的一个创建方法,其中包括一些不同的属性,包括一个名为:image,paperclip attachment:
has_attached_file :image
Run Code Online (Sandbox Code Playgroud)
现在我已经读过,通过将图像编码和解码为base64,可以直接在JSON中完成发送图像,但这对我来说感觉就像一个肮脏的解决方案.必须有更好的方法.
另一个解决方案是发送multipart/form-data请求,就像LEEjava在这里描述的那样.这个问题的一个问题是在Rails 3.2.2中没有正确解释请求参数,并且JSON.parse在尝试解析params时吐出错误,或者可能是错误解释某些东西的Rails.
入门POST "/api/v1/somemodel.json?token=ZoipX7yhcGfrWauoGyog"为127.0.0.1在2012-03-18十五时53分30秒+0200处理采用API :: V1 :: SomeController#创建为JSON参数:{" {\n
\"parentmodel \":{\n \"superparent_id \":1,\n
\"description \":\"享受花朵\",\n \"\":"=> {"\n
{\n\"someattribute \":1,\n
\"someotherattribute \":2,\n\"图像\":\ "image1的\" \n
} \n "=> {"\N}\N} "=> nil}},"token"=>"ZoipX7yhcGfrWauoGyog"}
抱歉,这很难读.JSON.parse(params [:parentmodel])在这里是不可能的,我不能JSON.parse(params),因为令牌属性,JSON.parse(params)抛出此错误:
TypeError(无法将ActiveSupport :: HashWithIndifferentAccess转换为String)
这让我相信我要么完全错误地接近这个问题,要么我只是在做某事.无论哪种方式,我们都可以确定我对某事感到错误.:)
有一个更好的方法吗?有人可以指点我任何指南/教程,或写一个答案描述我应该如何处理这个问题?
先感谢您
更新: 所以我现在实际上已经开始工作,但仅限于测试.我不完全确定这是如何工作的,但也许有人可以为我填补空白?这是测试代码的一部分(图像:fixture_file_upload(...)是重要的部分).
parts_of_the_object = { someattribute: 0, someotherattribute: 0, image: fixture_file_upload('/images/plot.jpg', 'image/jpg') }
Run Code Online (Sandbox Code Playgroud)
我的params []看起来像提交的普通HTML表单,这很奇怪(而且很棒):
Parameters: {"superparentid"=>"1", "plots"=>[{"someattribute"=>"0", "someotherattribute"=>"0", "image"=>#<ActionDispatch::Http::UploadedFile:0x007f812eab00e8 @original_filename="plot.jpg", @content_type="image/jpg", @headers="Content-Disposition: form-data; name=\"plots[][image]\"; filename=\"plot.jpg\"\r\nContent-Type: image/jpg\r\nContent-Length: 51818\r\n", @tempfile=#<File:/var/folders/45/rcdbb3p50bl2rgjzqp3f0grw0000gn/T/RackMultipart20120318-1242-1cn036o>>}], "token"=>"4L5LszuXQMY6rExfifio"}
Run Code Online (Sandbox Code Playgroud)
请求就像使用rspec一样发出请求:
post "/api/v1/mycontroller.json?token=#{@token}", thefull_object
Run Code Online (Sandbox Code Playgroud)
所以我已经完成了所有工作.我只是不知道它是如何工作的!我希望能够自己创建这样的响应,不仅仅是来自RSpec.:-)
我正在使用正常设置通过请求对话发送邀请:
FB.ui(
{
method: 'apprequests',
message: "Please add me, I am doing the same, thanks!"
},
function(response) {
console.log(response);
}
);
Run Code Online (Sandbox Code Playgroud)
响应成功,response.to显示多个ID.所以发送这些邀请就像它应该的那样.问题是这些应用程序不像通常那样显示为通知,而是在这里找到它们的唯一地方.
API有变化吗?寻找答案给了我没有结果,虽然我确实从2013年2月15日发现了这个错误报告.
Facebook刚刚再次测试,或者API已更改但文档没有?我真的很感激任何见解!
facebook invite apprequests facebook-app-requests facebook-invite
关于这个问题还有另外一个问题(隐藏滚动条和悬停时显示像facebooks的新聊天边栏一样),但我对他们如何实现滚动条的样式感兴趣.我只有一个猜测,那就是他们将自己的div放在滚动条所在的位置,从而隐藏它并简单地使自己的"抓手"跟随滚动高度.
我需要将垂直滚动添加到固定定位的div,如果有人知道一个好的插件(或者可以告诉我如何制作我自己的)来实现这一点,我很高兴听到他们.
谢谢
我希望其他人有一个很好的解决方案来解决这个问题.我们让用户使用Facebook注册(通过喜欢应用程序),同时他们以我们网站上的用户身份进入我们的数据库.
注册成功后,似乎Devise/OmniAuth正在创建一个随机密码(?).如何让用户编辑他们的个人资料,默认情况下(和应该)在Devise中要求他们输入他们当前的密码?
对于类似Travian的在线策略游戏,我有一些(我认为)非常好的想法.我还有一些内容尚未找到,还有一些我还不知道的其他挑战.
这是一个非常大的项目,对于一个不是熟练的Web开发人员的人来说可能太重了.我还是想尝试一下,但是我在选择平台时遇到了麻烦.世界"尺度"最近被抛到了很多地方,我看到Ruby on Rails因为它不能很好地扩展而受到抨击,所以我来这里得到一些答案.
我喜欢Ruby on Rails,Ruby和Rails.我当然不是专家,但我喜欢与它合作.我之前也使用过Python + Django以及PHP(我不喜欢它).
理想情况下,游戏将拥有每台服务器7000个玩家,可能每秒要处理大量数据.RoR仍然是一个可行的平台吗?
如果这个问题含糊不清,我很抱歉,我想我正在寻找"RoR很好,去吧!" 那种答案.你想要添加的任何东西都可以.
谢谢!
我正在使用RDiscount但我的Ruby on Rails技能有限.RDiscount具有.to_html函数,可将Markdown文本转换为HTML.所以这是场景:
<% @posts.each do |post| %>
<h3><%= post.title %></h3>
<%= post.content %>
<% end %>
post.content是我想要转换为html的东西.
1)我应该在哪里创建一个将字符串转换为HTML的方法?
2)如何阻止RoR转义RDiscount.to_html返回的HTML?
我试图避免为一组普通的旧数据结构使用相当复杂的继承链,但我需要将它们全部存储在一个向量中,并与调用者共享所有权。
Struct A {};
Struct B {};
using TInstruction = std::variant<A, B>;
struct holder {
std::vector<std::shared_ptr<TInstruction>> items;
};
static holder h;
// Every individual TInstruction gets its own add function, for validation purposes
void add(std::shared_ptr<A> a) {
// Somehow add this to h, while still sharing ownership with the caller
// h.emplace_back(???)
}
int main() {
holder h;
auto a = std::make_unique<A>();
auto b = std::make_unique<B>();
add(a);
// add(b) // not implemented
}
Run Code Online (Sandbox Code Playgroud)
通过对原始想法进行以下更改,我取得了中等(但非常糟糕)的成功:
using TInstruction = std::variant<std::shared_ptr<A>, std::shared_ptr<B>> …我在使用CoffeeScript创建函数时遇到了一些麻烦,我想我错过了一些东西.对于我的用户控制器,我想为注册表单创建客户端验证.我想我已经错过了这一切如何运作的基本原则.
<%= form_for @user, :html => {:onsubmit => "return validate_signup_form();"} do |f| %>
Run Code Online (Sandbox Code Playgroud)
CoffeeScript(assets/users.js.coffee):
validate_signup_form = () ->
alert "Hi"
return false
Run Code Online (Sandbox Code Playgroud)
预期产量:
var validate_signup_form;
validate_signup_form = function() {
alert("Hi");
return false;
};
validate_signup_form();
Run Code Online (Sandbox Code Playgroud)
实际输出:
(function() {
var validate_signup_form;
validate_signup_form = function() {
alert("Hi");
return false;
};
}).call(this);
Run Code Online (Sandbox Code Playgroud)