質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

受付中

NoMethodError が表示されてしまいます。

Tomoaki_Fukuda
Tomoaki_Fukuda

総合スコア0

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

1回答

0評価

0クリップ

2212閲覧

投稿2016/06/13 14:23

###前提・実現したいこと
ここに質問したいことを詳細に書いてください
Ruby on railsにてイベント投稿機能を作成しております。
しかし、その際にeventsフォルダの中の「new.html.erb」にて下記のようなエラーが発生してしまいます。

この対処方法をご教示頂けないでしょうか?

###発生している問題・エラーメッセージ

NoMethodError in Events#new Showing /Users/TOMOAKI/Event/app/views/events/new\.html\.erb where line #24 raised: undefined method `:start_time' for #<Event:0x007fa64730ee78> Extracted source \(around line #24\): 22 23 24 25 26 27 <%= f\.label :start_time %> <div> <%= f\.datetime_select ':start_time', start_year: now\.year, end_year: now\.year \+ 1 %> </div> </div> <div class="form-group"> Rails\.root: /Users/TOMOAKI/Event Application Trace | Framework Trace | Full Trace app/views/events/new\.html\.erb:24:in `block in _app_views_events_new_html_erb___3301007158387348171_70176067840640' app/views/events/new\.html\.erb:7:in `_app_views_events_new_html_erb___3301007158387348171_70176067840640' Request Parameters: Non

###Events>new.html.erb

ruby

<% now = Time\.zone\.now %> <div class ="page-header"> <h1>イベント作成</h1> </div> <%= form_for\(@event, class: 'form-horizontal',role:'form'\) do |f| %> <% if @event\.errors\.any\? %> <div class ="alert alert-danger"> <ul> <% @event\.errors\.full_messages\.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <div class="form-group"> <%= f\.label :name %> <%= f\.text_field :name, class: 'form-control' %> </div> <div class="form-group"> <%= f\.label :start_time %> <div> <%= f\.datetime_select :start_time, start_year: now\.year, end_year: now\.year \+ 1 %> </div> </div> <div class="form-group"> <%= f\.label :end_time %> <div> <%= f\.datetime_select :end_time, start_year: now\.year, end_year: now\.year \+ 1 %> </div> </div> <div class="form-group"> <%= f\.label :place %> <%= f\.text_field :place, class: 'form-control'%> </div> <div class="form-group"> <%= f\.label :content %> <%= f\.text_area :content, class: 'form-control',row:10 %> </div> <%= f\.submit '作成', class: 'btn btn-default', data:{ disable_with:'作成中・・・'} %> <% end %>

###models>event.rb

ruby

class Event < ActiveRecord::Base validates :name, length: { maximum:50}, presence: true validates :place, length: { maximum:100}, presence: true validates :content, length: { maximum:2000}, presence: true validates :start_time, presence: true validates :end_time, presence: true validates :start_time_should_be_before_end_time, presence: true private def start_time_should_be_before_end_time return unless start_time && end_time if start_time >= end_time errors\.add\(:start_time,'は終了時間よりも前に設定してください'\) end end end

###Contollers>events_controller.rb

ruby

class EventsController < ApplicationController before_filter :authenticate_user! before_action :set_event, only: \[:show, :edit, :update, :destroy\] # GET /events # GET /events\.json def index @events = Event\.all end # GET /events/1 # GET /events/1\.json def show end # GET /events/new def new @event = Event\.new end # GET /events/1/edit def edit end # POST /events # POST /events\.json def create @event = Event\.new\(event_params\) respond_to do |format| if @event\.save format\.html { redirect_to @event, notice: 'Event was successfully created\.' } format\.json { render :show, status: :created, location: @event } else format\.html { render :new } format\.json { render json: @event\.errors, status: :unprocessable_entity } end end end # PATCH/PUT /events/1 # PATCH/PUT /events/1\.json def update respond_to do |format| if @event\.update\(event_params\) format\.html { redirect_to @event, notice: 'Event was successfully updated\.' } format\.json { render :show, status: :ok, location: @event } else format\.html { render :edit } format\.json { render json: @event\.errors, status: :unprocessable_entity } end end end # DELETE /events/1 # DELETE /events/1\.json def destroy @event\.destroy respond_to do |format| format\.html { redirect_to events_url, notice: 'Event was successfully destroyed\.' } format\.json { head :no_content } end end private # Use callbacks to share common setup or constraints between actions\. def set_event @event = Event\.find\(params\[:id\]\) end # Never trust parameters from the scary internet, only allow the white list through\. def event_params params\.require\(:event\)\.permit\(:name, :start_time, :end_time, :place, :content, :participation_limit\) end end

###db>migrate>20160321133115_create_events.rb

ruby

class CreateEvents < ActiveRecord::Migration def change create_table :events do |t| t\.integer :owner_id t\.string :name, null: false t\.datetime :start_time, null: false t\.datetime :end_time, null: false t\.string :place, null: false t\.text :content, null: false t\.integer :participation_limit t\.timestamps null: false end add_index :events, :owner_id end end

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。