Ruby on rails教程MessageController中的NoMethodError

时间:2015-12-20 12:53:15

标签: ruby-on-rails ruby

所以我在http://guides.rubyonrails.org/getting_started.html跟随官方的ROR教程,我被困在第5.7节,它将展示这些文章。在我的代码中,我使用消息而不是文章。 以下是我的控制器和new.html.erb

Controller code

class MessagesController < ApplicationController
  def index
    @messages = Msg4me.all
  end

  def show
    @message = Msg4me.find(params[:id])
  end

  def new
  end

  def create
    @message = Msg4me.new(message_params)

    @message.save
    redirect_to @message
  end

  private
  def message_params
    params.require(:message).permit(:title, :text)
  end

end

new.html.erb

<p>IT's <%= Time.now %> now</p>
<p>Leave me a message below</p>
<%= form_for :message,url: messages_path do |f| %>
    <p>
      <%= f.label :title %><br>
      <%= f.text_field :title %>
    </p>

    <p>
      <%= f.label :text %><br>
      <%= f.text_area :text %>
    </p>

    <p>
      <%= f.submit %>
    </p>
<% end %>

routes.rb

Rails.application.routes.draw do
      get "homepage" => "homepage#hello"
      resources :messages

      root :to => "homepage#hello"
    end

我有一个错误

  

MessagesController中的NoMethodError #create   未定义的方法`msg4me_url'代表#   MessagesController:0x000000076248a8

此错误有什么问题?我已经考虑了很长时间而无法解决它。

1 个答案:

答案 0 :(得分:0)

def new
   @message = Msg4me.new
end 

<强> new.html.erb

<p>IT's <%= Time.now %> now</p>
 <p>Leave me a message below</p>
 <%= form_for (:message,url: messages_path) do |f| %>
   <p>
     <%= f.label :title %><br>
     <%= f.text_field :title %>
   </p>

   <p>
     <%= f.label :text %><br>
     <%= f.text_area :text %>
   </p>

   <p>
     <%= f.submit %>
   </p>
<% end %>