Add Language model and LanguageController

This commit is contained in:
maddiebaka
2023-10-24 23:47:01 -04:00
parent ed00e69a13
commit 206c4da31f
28 changed files with 298 additions and 18 deletions

View 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

View File

@@ -0,0 +1,2 @@
module LanguageHelper
end

View File

@@ -1,3 +1,4 @@
class Definition < ApplicationRecord
belongs_to :word
belongs_to :language
end

6
app/models/language.rb Normal file
View File

@@ -0,0 +1,6 @@
class Language < ApplicationRecord
has_many :definitions
has_many :part_of_speeches
validates_presence_of :name
end

View File

@@ -1,2 +1,3 @@
class PartOfSpeech < ApplicationRecord
belongs_to :language
end

View File

@@ -0,0 +1,5 @@
<% if language.errors.any? %>
<% language.errors.full_messages.each do |message| %>
<h6><%= message %></h6>
<% end %>
<% end %>

View File

@@ -0,0 +1,6 @@
<%= form_for language do |f| %>
<%= f.label :name %>
<%= f.text_field :name %><br/>
<br/>
<%= f.submit %>
<% end %>

View File

@@ -0,0 +1,2 @@
<h1>Language#create</h1>
<p>Find me in app/views/language/create.html.erb</p>

View File

@@ -0,0 +1,2 @@
<h1>Language#destroy</h1>
<p>Find me in app/views/language/destroy.html.erb</p>

View File

@@ -0,0 +1,5 @@
<%= render "languages/errors", language: @language %>
<h1>Edit Language</h1>
<%= render "languages/form", language: @language %>

View 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 %>

View File

@@ -0,0 +1,5 @@
<%= render "languages/errors", language: @language %>
<h1>New Language</h1>
<%= render "languages/form", language: @language %>

View File

@@ -0,0 +1,2 @@
<h1>Language#show</h1>
<p>Find me in app/views/language/show.html.erb</p>

View File

@@ -0,0 +1,2 @@
<h1>Language#update</h1>
<p>Find me in app/views/language/update.html.erb</p>

View File

@@ -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? %>