我已经创建了一个带有条形的小应用程序来发布消息,我想为每条消息添加一个删除按钮,以便我可以将其删除。
这是我的代码:
控制器:
class HomeController < ApplicationController
def create
@message = Message.new(params[:message])
if @message.save
redirect_to "/home/show_msg"
else
render :action => "/home/home_page"
end
end
def home_page
@message = Message.new
end
def show_msg
@postwords = Message.all
end
def index
end
end
查看(主页):
<center><h1>MiNibloG</h1></center>
<br>
<br>
<div align="center">
<%= form_for @message, :url => "/home/create" do |f| %>
<%= f.label :postword %>
<%= f.text_field :postword %>
<%= f.submit "Post" %>
<% end %>
</div>
查看(show_msg):
<center>
<h1>Posts list</h1>
<br>
<br>
<ul>
<% @postwords.each do |p| %>
<%= p.postword %><br><br>
<% end %>
</ul>
</center>
这就是迁移:
class CreateMessages < ActiveRecord::Migration
def self.up
create_table :messages do |t|
t.string :postword
t.timestamps
end
end
def self.down
drop_table :messages
end
end
答案 0 :(得分:1)
请看看脚手架,脚手架最适合你的情况。
rails generate scaffold message postwords:string
此命令为您生成视图,控制器和迁移。
要使用您自己的非REST控制器进行删除,请使用下面的代码(不测试它)
<% @postwords.each do |p| %>
<%= p.postword %>
<%= link_to 'Destroy', destroy(p) %><br>
<% end %>
控制器中的:
def destroy
@message = Message.find(params[:id])
@message.destroy
respond_to do |format|
format.html { redirect_to some_route }
format.xml { head :ok }
end
end
在routes.rb中添加destroy动作