form_for с classy_enum - PullRequest
       27

form_for с classy_enum

0 голосов
/ 16 января 2019

У меня есть таблица сообщений с полем состояния

t.string :state

Я использовал гем Classy Enum , чтобы создать 3 состояния с классом, сгенерированным государством

class State < ClassyEnum::Base
end

class State::New < State
end

class State::Published < State
end

class State::Hidden < State
end

У меня есть post_controller с методом обновления

На мой взгляд, у меня есть эта форма для внесения изменений

<%= form_for @post, method: :patch do |f| %>
    <%= f.hidden_field state: "published" %>
    <%= f.submit "Share", class: "btn btn-primary"%>
<% end %>

Почему я получаю эту ошибку?

ActionView::Template::Error (undefined method `{:state=>"published"}' for #<Post:0x00007f973fe62ef8>)

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Вот ответ:

<%= link_to 'Publish', post_path, data: {method: :patch, remote: true, params: {state: "published"}.to_param}, class: "btn btn-primary" %>

Мне просто нужна форма, если кто-то может помочь

0 голосов
/ 16 января 2019

Добавить state:string в пост модель

rails g migration add_state_to_posts state

или

class Post < ActiveRecord::Base
  include ClassyEnum::ActiveRecord

  classy_enum_attr :state

end

Ссылка => https://github.com/beerlington/classy_enum#3-setup-the-active-record-model

...