Ruby on rails 3 尝试在我的Rails 3应用程序中编写“积分”系统
轨道3.2.3 我正在尝试向我的Rails应用程序添加一个points功能。这个想法很简单,如果你点击向上,你的分数会增加1。如果您向下单击,您的积分将减少1。但由于某些原因,积分没有改变,我创建的每个新链接的积分都会增加10 我的迁移文件中的点默认为0,但它们从不显示为零Ruby on rails 3 尝试在我的Rails 3应用程序中编写“积分”系统,ruby-on-rails-3,default-value,points,Ruby On Rails 3,Default Value,Points,轨道3.2.3 我正在尝试向我的Rails应用程序添加一个points功能。这个想法很简单,如果你点击向上,你的分数会增加1。如果您向下单击,您的积分将减少1。但由于某些原因,积分没有改变,我创建的每个新链接的积分都会增加10 我的迁移文件中的点默认为0,但它们从不显示为零 t.column :points, :integer, :default => 0` 这是我的部分视图代码 <td> <%= link_to "Up",
t.column :points, :integer, :default => 0`
这是我的部分视图代码
<td>
<%= link_to "Up",
:url => { :action => 'modify_points',
:id => link.id,
:by => 1 },
:remote => true,
:update => "link" + link.id.to_s %>
</td>
<td>
<%= link_to "Down",
:url => { :action => 'modify_points',
:id => link.id,
:by => -1 },
:remote => true,
:update => "link" + link.id.to_s %>
</td>
<td>
<b> <a href="<%= link.url %>"> <%= link.description %> </a> </b>
(<%= if link.url =~ /:\/\/([^\/]*)/ then $1 else "wrong URL" end %>) <br/>
<span id="link"><%= link.id.to_s %><%= link.points %> </span>
points posted <%= time_ago_in_words link.created_at %> ago
</td>
现在,我的第一个提交的链接有10分,我的第二个链接有20分,我的第三个链接有30分。。。等等而上下链接没有任何作用。为什么我没有看到默认的点值0?modify_points方法中的正则表达式代码是否导致这些错误
**编辑:按下UP链接时,这是我的RAILS服务器日志**
好吧,你的链接不是你想要的-正如你从日志中看到的,这里:
Processing by LinksController#submissions as HTML
Started GET "/?remote=true&update=link4&url%5Baction%5D=modify_points&url%5Bby%5D=1&url%5Bid%5D=4" for 127.0.0.1 at 2012-06-11 10:08:54 -0700
Processing by LinksController#submissions as HTML
Parameters: {"remote"=>"true", "update"=>"link4", "url"=>{"action"=>"modify_points", "by"=>"1", "id"=>"4"}}
它将您的:url视为一个普通参数,并将其传递给LinksControllersubmissions。您可能应该使用基于路由的帮助器?类似这样的情况,取决于您的路线:
<%= link_to('UP', link_modify_points_path(link, :by => 1), :remote => true) %>
听起来好像您有多个问题,可能彼此无关——创建链接时未使用默认值,并且修改点无法按预期工作。您可以包含通过单击其中一个链接生成的rails服务器日志的副本吗?是的,在按向上链接时添加了服务器日志
Processing by LinksController#submissions as HTML
Started GET "/?remote=true&update=link4&url%5Baction%5D=modify_points&url%5Bby%5D=1&url%5Bid%5D=4" for 127.0.0.1 at 2012-06-11 10:08:54 -0700
Processing by LinksController#submissions as HTML
Parameters: {"remote"=>"true", "update"=>"link4", "url"=>{"action"=>"modify_points", "by"=>"1", "id"=>"4"}}
<%= link_to('UP', link_modify_points_path(link, :by => 1), :remote => true) %>