ruby-on-rails - 如何将我的模型连接到我的应用程序

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

大家好,(我是 Rails 的初学者)

我创建了一个看起来像这样的 Controller :

class HomeController < ApplicationController

  def homepage
  end

  def showmsg
  @postword = params[:p]
  end

end

showmsg View 如下所示:

<%= @postword %>

我的主页 View 如下所示:

  <%= form_tag( {:controller => 'home', :action => 'showmsg'}, :method => "post") do %>
  <%= text_field_tag(:p,@postword) %>
  <%= submit_tag("post") %>
  <% end %>

现在我有一个表单,我可以在其中写一些东西,它会显示在 showmsg View 中。 我用参数创建了一个模型 :posts 也有一个 :description “文本”字段。 我的问题是我如何在代码中实现模型,这样我写的任何东西都会在一个列表中,其中包含我之前写的东西,因为现在(很明显)如果我写了一些东西,它会删除我之前写的东西。

谢谢大家!

最佳答案

我认为你的方法不是很像 rail...所以如果你正在学习 rails...你就学错了。

制作模型。称其为“消息”:

rails generate model Message content:string

记得迁移(希望你的数据库设置正确):

rake db:migrate

然后在您的 Controller 中,当您发布时,您可以创建这样的消息:

def create #instead of showmsg... 'create' is the standard name for this
  Message.create(params[:message])
  @messages = Message.all
end

这将在数据库中创建消息,然后它将所有消息从数据库中取出并放入@messages。

您需要编辑您的表单,以便它使用 form_for。您需要传递给它 @message,这是您的第一个 Controller 操作创建的 Message.new 的一个实例。你应该称这个为 new

在您的 create.erb.html 文件中,您显示所有这样的消息:

<ul>
  <% @messages.each do |message| %>
    <li><%= message.content %></li>
  <% end %>
</ul>

我实际上不建议在创建操作中显示所有消息 - 它应该真正发生在 index 操作中并且您应该重定向...但我们需要保持简单。只需用谷歌搜索或观看 Ryan 的一些截屏视频,您就会明白。

你就完成了。这就是做事的“Rails Way”。最好按照他们希望您学习的方式学习它。

我还赞扬您通过缩进正确格式化代码,并开始将您的方法命名为真正的英语。例如,showmsg 不好,而 show_message 好很多。

如果所有这些都令人困惑,那么只需创建一个新项目,然后键入:

rails generate scaffold message content:string

它基本上会构建您想要的应用程序以及更多内容。您只需阅读代码,看看他们是如何做到的。

希望对您有所帮助。

关于ruby-on-rails - 如何将我的模型连接到我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6201941/

相关文章:

Ruby 无法识别正则表达式的 g 标志

ruby-on-rails - 带有 rails-api 和 Angular JS 的 SPA

ruby-on-rails - Rails "includes"方法和避免 N+1 查询

ruby-on-rails - 将 ruby​​ on rails 应用程序从 sqlite 转换为 postgresql

ruby-on-rails - 主要 :Object (NoMethodError) 的未定义方法 `require_relative'

ruby-on-rails - Ruby on Rails : How to Configure the Devise Mailer?

ruby-on-rails - 如何为我的 rails 应用程序扩展 sidekiq 性能。需要每秒运行 100 个 sidekiq 作业

ruby - Dropbox SDK 入门

ruby-on-rails - 关联关联的计数器缓存

ruby-on-rails - HABTM-协会Insert_sql