2012-04-21 2 views
1

Я пытаюсь использовать formtastic, чтобы создать форму, где я могу ввести: оппозиция выбрать: место и команду: а затем представить список игроков, которые я могу проверить чтобы выбрать их дляFormtastic/rails формы не отправляются

У меня есть форма, настроенная так, что она правильно отображается, однако при ее отправке она не сохраняет никакой информации и просто перезагружает страницу.

Мой код на моем GitHub здесь: https://github.com/jpknegtel/st_francis

моделей

Это касается следующих моделей:

игрока

has_many :player_fixtures 
has_many :fixtures, :through => :player_fixtures 

светильники

has_many :player_fixtures 
has_many :players, :through => :player_fixtures 

PlayerFixture

belongs_to :player 
belongs_to :fixture 

контроллер

def create 
@fixture = Fixture.new(params[:fixture]) 
if @fixture.save 
    flash[:notice] = "Fixture Created" 
    redirect_to(:action =>'list') 
else 
    flash.now[:error] = "Could not save fixture. Please re-enter information" 
    render('new') 
end 
end 

def new 
@fixture = Fixture.new 
end 

форма

<%= semantic_form_for :fixture do |f| %> 
<%= f.inputs do %> 
    <%= f.input :opposition %> 
    <%= f.input :team, :as => :select, :collection => Team.all %> 
    <%= f.input :venue, :as => :check_boxes, :collection => Hash[Venue.all.map{|b| [b.name, b.id]}]%> 
    <%= f.input :players, :as => :check_boxes, :collection => Hash[Player.all.map{|b| [b.full_name, b.id]}], :required => true %> 
<% end %> 
<%= f.actions do %> 
<%= f.action :submit, :as => :button %> 
<%= f.action :cancel, :as => :link %> 
<% end %> 
<% end %> 

Итак, когда форма представляется в настоящее время не передается ничего. При просмотре сервера веб-кирпича ничего не отправляется, но страница просто перезагружается.

Можно вставить записи, используя консоль рельсов.

EDIT: Теперь я могу видеть это при его отправке.

Started POST "/fixtures/new" for 127.0.0.1 at 2012-04-23 15:00:21 +0100 
Processing by FixturesController#new as HTML 
Parameters: {"utf8"=>"✓",  "authenticity_token"=>"Hx4TChWiUdhpZbAfgWUYMWBKao86pZh0tGzwVKy+P80=", "fixture"=> {"opposition"=>"Mid sussex", "team"=>"1", "venue"=>["", "1"], "players"=>["", "1", "3"]}, "button"=>""} 
Team Load (1.0ms) SELECT `teams`.* FROM `teams` 
Venue Load (1.0ms) SELECT `venues`.* FROM `venues` 
Player Load (1.0ms) SELECT `players`.* FROM `players` 
Rendered fixtures/new.html.erb within layouts/application (173.0ms) 
Completed 200 OK in 200ms (Views: 163.0ms | ActiveRecord: 36.0ms) 
[2012-04-23 15:00:21] WARN Could not determine content-length of response body. Set  content-length of the response or set Response#chunked = true 
+0

В этом репо нет «semantic_form_for». Вы взяли все свои последние вещи? –

+0

Я только что нажал фиксацию. Должно быть, сейчас, простите об этом. – JPKnegte

+0

Можете ли вы опубликовать код для нового действия вашего контроллера? Вы назначаете '@ fixture' там? – Brandan

ответ

2

Мое предположение является массовым назначением. Вы должны разрешить рельсам обновлять некоторые атрибуты с помощью massassignment.

Добавьте эту строку в вашей модели светильников:

attr_accessible :players_attributes, :opposition, :team_id, :venue_id, :date 

Это позволяет рельсы установить эти атрибуты с помощью new и update_attributes методов.

Для получения дополнительной информации см. rails guide on security.

+0

Я добавил следующее, однако я похоже, ничего не может сделать. Все еще перезагружается мгновенно. Но видели это сейчас: см. Править выше – JPKnegte

+0

Не могли бы вы разместить еще несколько журналов? Я хотел бы посмотреть на выход журнала для запроса формы, а затем вывод, когда вы отправляете форму. – klump

+0

добавили еще несколько. Я не вижу больше пользы, чтобы быть честным? – JPKnegte

Смежные вопросы