2015-06-24 4 views
2

Я пытаюсь разработать плагин redmine, который имеет некоторые формы о датах. Когда я пытаюсь настроить параметры маршрута, рельсы показали мне эту ошибку. Я не мог это исправить. В чем проблема?Синтаксическая ошибка, неожиданное ключевое слово_до_блока, ожидающее ключевое слово_отключить

Я получил эту ошибку:

/days/new.html.erb:20: syntax error, unexpected tLABEL, expecting keyword_end ...ppend= form_for(@daysoff) url: {action: "create"} do |f| @o... ...^/var/www/redmine/plugins/days_off_redmine/app/views/days/new.html.erb:20: syntax error, unexpected keyword_do_block, expecting keyword_end ...off) url: {action: "create"} do |f| @output_buffer.safe_appe... ...^/var/www/redmine/plugins/days_off_redmine/app/views/days/new.html.erb:44: syntax error, unexpected keyword_ensure, expecting end-of-input 

конфиг/routes.rb

get 'days_off_redmine', :to => 'days#index' 
get 'days_off_redmine/new', :to => 'days#new' 
post 'days_off_redmine', :to => 'days#create' 

модель/daysoff.rb

class Daysoff < ActiveRecord::Base 
unloadable 
end 

days_controller.rb

class DaysController < ApplicationController 
    unloadable 

    def index 


    end 

    def new 
    @people = User.all 
    @user = User.current 

    @daysoff = Daysoff.new 
    end 

    def create 
    end 



end 

дней/index.html.erb

<%= link_to 'New', days_off_redmine_new_path %> 

дней/new.html.erb

<%= form_for(@daysoff) url: {action: "create"} do |f| %> 
<%= f.date_field :date, id: 'altField' %> 
<%= f.select_field "user", options_from_collection_for_select(@people, "id", "name"), prompt: "Select user" %> 
<%= f.submit "Submit" %> 
<% end %> 

Extra Вопрос: На самом деле я не нуждаются в дополнительной странице, как может опубликовать свою форму в индексе контроллер?

ответ

0

Изменение формы это:

<%= form_for @daysoff do |f| %> 
    <%= f.date_field :date, id: 'altField' %> 
    <%= f.select_field "user", options_from_collection_for_select(@people, "id", "name"), prompt: "Select user" %> 
    <%= f.submit "Submit" %> 
<% end %> 

Actually I don't need extra page, how can post my form in the index controller?

Просто используйте @daysoff и @people переменные внутри индекса действия, и вы хорошо идти.

def index 
    @people = User.all 
    @user = User.current 

    @daysoff = Daysoff.new 
end 
1

Соскучились , как:

<%= form_for @daysoff, url: {action: "create"} do |f| %> 
0
<%= form_for(@daysoff) url: {action: "create"} do |f| %> 
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      this should be arguments to the form_for method 

... но вы закрыли круглые скобки и так есть ошибка синтаксиса, он должен быть:

<%= form_for(@daysoff, url: {action: "create"}) do |f| %> 

.. .or, более идиоматично, только:

<%= form_for @daysoff, url: {action: "create"} do |f| %>