Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何添加'+;1';Rails 3应用程序中的链接,单击该链接会将UpVoces值增加1?_Ruby On Rails 3_Model View Controller_Controller - Fatal编程技术网

Ruby on rails 3 如何添加'+;1';Rails 3应用程序中的链接,单击该链接会将UpVoces值增加1?

Ruby on rails 3 如何添加'+;1';Rails 3应用程序中的链接,单击该链接会将UpVoces值增加1?,ruby-on-rails-3,model-view-controller,controller,Ruby On Rails 3,Model View Controller,Controller,我是编程新手 我产生了一个想法。该模型具有以下字段:描述(字符串)、向上投票(整数)、向下投票(整数) ideas_controller.rb中的所有正常操作-索引、显示、新建、编辑、创建、更新和销毁 我不想告诉你我试图做以下事情的方式,我只想问: 如何在“显示”、“编辑”、“销毁”链接旁边添加“+1”链接,当单击该链接时,该链接会将该想法的UpVoces值增加1 提前谢谢 编辑(在“Skydreamer”的帮助下,我找到了答案!) 我将routes.rb调整为: resources :i

我是编程新手

我产生了一个想法。该模型具有以下字段:描述(字符串)、向上投票(整数)、向下投票(整数)

ideas_controller.rb中的所有正常操作-索引、显示、新建、编辑、创建、更新和销毁

我不想告诉你我试图做以下事情的方式,我只想问:

如何在“显示”、“编辑”、“销毁”链接旁边添加“+1”链接,当单击该链接时,该链接会将该想法的UpVoces值增加1

提前谢谢

编辑(在“Skydreamer”的帮助下,我找到了答案!)

我将routes.rb调整为:

   resources :ideas do
     member do
       get 'upvote'
     end
   end
我将以下内容添加到ideas index.html.erb中:

<td><%= link_to '+1', upvote_idea_path(idea) %></td>

在接下来的几行中,我会说upvote,但对于downvote也一样

首先,创建一个成员路由
upvote
,然后您可以使用
upvote\u idea\u path
从show视图链接到新操作


其次,在控制器中创建一个操作
upvote
,将投票计数增加1,就完成了。仅此而已。

您可以使用gem实现此功能。它还与Rails 3兼容。

我总是对Rails社区提供的所有有趣的插件感到惊讶!这个看起来不错。我可以从索引视图而不是从显示视图来做吗?是的,很明显,你可以,就像其他任何路线一样。你能把upvote操作放在ideas控制器中吗?创建成员路线和收集路线意味着什么?您能展示一些示例代码吗?成员视图表示例如
ideas/[id]/upvote
,而集合表示
ideas/upvote
。您可以查看如何设置一个(第2.9节)。动作进入idea控制器,可以访问ressource的id。是的,我没有对它进行精确化。你必须精确地说出你想要投票的想法。
@idea.upvoces+=1
更为惯用。
    def upvote
      @idea = Idea.find (params[:id])
      @idea.upvotes = @idea.upvotes + 1
      @idea.save
      redirect_to(ideas_url)
    end