这是另一个我全新的Ruby-please-have-mercy情况。
因此,我试图弄清楚如何创建所有按钮的数据库,以便在每次点击时保存点击次数。我开始new rails
试用它并生成model Button
和controller buttons index
route.rbs
Rails.application.routes.draw do
resources :buttons
root 'buttons#index'
end
迁移
class CreateButtons < ActiveRecord::Migration[5.0]
def change
create_table :buttons do |t|
t.integer :clicks
t.timestamps
end
end
end
buttons_controller
class ButtonsController < ApplicationController
def index
@button = Button.find(1)
end
def doit
@button = Button.find(1)
@newcount = @button.clicks + 1
Button.find(1).update_attributes(:clicks => @newcount)
end
end
现在..我需要触发doit方法..是否可以触发非CRUD操作? 我试过这个,但似乎没有用 index.html.erb
<h1>Hello, This is button and my click are :</h1>
<h1><%= @button.clicks %></h1>
<%= link_to 'click me', method: :doit %>
我知道那里有一些我没有到达的地方...... Ruby已经做了很多魔术,我不能做一个简单的ruby方法..我很难得到方法正在发生而没有通过名字调用它们。 特别是当我触发一个删除方法并且由此触发了destroy方法时......我真的需要习惯这个太多魔术的编码
答案 0 :(得分:0)
我认为有几点需要改进。如果出现问题,请回复我(我没有运行代码)
控制器:
[HttpPost]
[HttpParamAction]
public virtual async Task<ActionResult> ActionName(AccountModel model, string Account)
{
if(Account=="Edit"){
...
}
else if(Account=="AddNew"){
....
}
}
查看:
def index
@buttons = Button.all
end
让<h1>These are all my buttons</h1>
<% @buttons.each do |button| %>
<%= link_to("Button #{button.id}", button_votes_path(button), method: :post) %>
<% end %>
显示资源列表很常见。
我选择将其称为&#34;投票&#34;。你也可以称之为&#34;点击&#34;或者&#34;按&#34;或者其他什么。
index
resources :buttons, only: [:index] do
resources :votes, only: [:create]
end
这里没有错误处理。所以这只是为了让你开始。 对于接下来的步骤,我建议您遵循教程或从更简单的东西开始。