Add Language model and LanguageController
This commit is contained in:
50
app/controllers/languages_controller.rb
Normal file
50
app/controllers/languages_controller.rb
Normal file
@@ -0,0 +1,50 @@
|
||||
class LanguagesController < ApplicationController
|
||||
|
||||
def index
|
||||
@languages = Language.all
|
||||
end
|
||||
|
||||
def new
|
||||
@language = Language.new
|
||||
end
|
||||
|
||||
def create
|
||||
@language = Language.new(language_params)
|
||||
if @language.save
|
||||
flash[:notice] = "Language successfully created."
|
||||
redirect_to languages_path
|
||||
else
|
||||
render :new, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@language = Language.find_by_id(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
@language = Language.find_by_id(params[:id])
|
||||
if @language.update(language_params)
|
||||
flash[:notice] = "Language successfully updated."
|
||||
redirect_to languages_path
|
||||
else
|
||||
render :edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@language = Language.find_by_id(params[:id])
|
||||
if @language.destroy
|
||||
flash[:notice] = "Language successfully deleted."
|
||||
redirect_to languages_path
|
||||
else
|
||||
render :index, status: :not_modified
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def language_params
|
||||
params.require(:language).permit(:name)
|
||||
end
|
||||
|
||||
end
|
2
app/helpers/language_helper.rb
Normal file
2
app/helpers/language_helper.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
module LanguageHelper
|
||||
end
|
@@ -1,3 +1,4 @@
|
||||
class Definition < ApplicationRecord
|
||||
belongs_to :word
|
||||
belongs_to :language
|
||||
end
|
||||
|
6
app/models/language.rb
Normal file
6
app/models/language.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
class Language < ApplicationRecord
|
||||
has_many :definitions
|
||||
has_many :part_of_speeches
|
||||
|
||||
validates_presence_of :name
|
||||
end
|
@@ -1,2 +1,3 @@
|
||||
class PartOfSpeech < ApplicationRecord
|
||||
belongs_to :language
|
||||
end
|
||||
|
5
app/views/languages/_errors.html.erb
Normal file
5
app/views/languages/_errors.html.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
<% if language.errors.any? %>
|
||||
<% language.errors.full_messages.each do |message| %>
|
||||
<h6><%= message %></h6>
|
||||
<% end %>
|
||||
<% end %>
|
6
app/views/languages/_form.html.erb
Normal file
6
app/views/languages/_form.html.erb
Normal file
@@ -0,0 +1,6 @@
|
||||
<%= form_for language do |f| %>
|
||||
<%= f.label :name %>
|
||||
<%= f.text_field :name %><br/>
|
||||
<br/>
|
||||
<%= f.submit %>
|
||||
<% end %>
|
2
app/views/languages/create.html.erb
Normal file
2
app/views/languages/create.html.erb
Normal file
@@ -0,0 +1,2 @@
|
||||
<h1>Language#create</h1>
|
||||
<p>Find me in app/views/language/create.html.erb</p>
|
2
app/views/languages/destroy.html.erb
Normal file
2
app/views/languages/destroy.html.erb
Normal file
@@ -0,0 +1,2 @@
|
||||
<h1>Language#destroy</h1>
|
||||
<p>Find me in app/views/language/destroy.html.erb</p>
|
5
app/views/languages/edit.html.erb
Normal file
5
app/views/languages/edit.html.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
<%= render "languages/errors", language: @language %>
|
||||
|
||||
<h1>Edit Language</h1>
|
||||
|
||||
<%= render "languages/form", language: @language %>
|
20
app/views/languages/index.html.erb
Normal file
20
app/views/languages/index.html.erb
Normal file
@@ -0,0 +1,20 @@
|
||||
<h1>Languages</h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><b>Language</b></td>
|
||||
</tr>
|
||||
<% @languages.each do |language| %>
|
||||
<tr>
|
||||
<td><%= language.name %></td>
|
||||
<td><%= link_to "Edit", edit_language_path(language) %></td>
|
||||
<td> | </td>
|
||||
<td><%= link_to "Delete", language_path(language), data: { turbo_method: :delete,
|
||||
turbo_confirm: "Are you sure?" } %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
<%= link_to "New Language", new_language_path %>
|
5
app/views/languages/new.html.erb
Normal file
5
app/views/languages/new.html.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
<%= render "languages/errors", language: @language %>
|
||||
|
||||
<h1>New Language</h1>
|
||||
|
||||
<%= render "languages/form", language: @language %>
|
2
app/views/languages/show.html.erb
Normal file
2
app/views/languages/show.html.erb
Normal file
@@ -0,0 +1,2 @@
|
||||
<h1>Language#show</h1>
|
||||
<p>Find me in app/views/language/show.html.erb</p>
|
2
app/views/languages/update.html.erb
Normal file
2
app/views/languages/update.html.erb
Normal file
@@ -0,0 +1,2 @@
|
||||
<h1>Language#update</h1>
|
||||
<p>Find me in app/views/language/update.html.erb</p>
|
@@ -15,6 +15,10 @@
|
||||
<div class="d-flex mb-3">
|
||||
<div class="p-2">
|
||||
<%= link_to "Dictionary", dictionary_index_path %>
|
||||
<% if user_signed_in? %>
|
||||
<pre style="display: inline;">|</pre>
|
||||
<%= link_to "Languages", languages_path %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="ms-auto p-2">
|
||||
<% if user_signed_in? %>
|
||||
|
Reference in New Issue
Block a user