如何在我的微博上创建消息的删除链接?

时间:2011-06-05 13:52:50

标签: ruby-on-rails ruby ruby-on-rails-3

我已经创建了一个带有条形的小应用程序来发布消息,我想为每条消息添加一个删除按钮,以便我可以将其删除。

这是我的代码:

控制器:

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

1 个答案:

答案 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动作