Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React from 'react'
- import NewTweet from './NewTweet'
- import Tweets from './Tweets'
- class TweetsPage extends React.Component {
- constructor() {
- super();
- this.state = {
- tweets: [],
- tweet: '',
- };
- this.onSubmit2 = this.onSubmit2.bind(this);
- }
- loadTweetsFromServer() {
- $.ajax({
- url: 'http://localhost:3000/tweets/index.json',
- dataType: 'json',
- type: 'GET',
- cache: false,
- success: (data) => {
- this.setState({
- tweets: data
- });
- },
- error: (xhr, status, err) => {
- console.error(url, status, err.toString());
- },
- });
- }
- onSubmit2(value) {
- console.log(value)
- $.ajax({
- url: 'http://localhost:3000/tweets/create',
- dataType: 'json', // I'm not even sure if json is the right choice.
- type: 'POST',
- cache: false,
- data: {
- tweet: this.state.tweet
- },
- success: (data) => {
- this.loadTweetsFromServer();
- },
- error: (xhr, status, err) => {
- console.error(url, status, err.toString());
- },
- });
- }
- componentDidMount() {
- this.loadTweetsFromServer();
- }
- render() {
- return (
- <div>
- <NewTweet onSubmit1={this.onSubmit2} />
- <Tweets tweets={this.state.tweets} />
- </div>
- );
- }
- }
- export default TweetsPage;
- import React from 'react'
- class NewTweet extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- tweet: ''
- };
- this.getInput = this.getInput.bind(this);
- this.onSubmit = this.onSubmit.bind(this);
- }
- getInput(e) {
- this.setState({
- tweet: e.target.value
- });
- }
- onSubmit() {
- this.props.onSubmit1(this.state.tweet);
- }
- render() {
- return (
- <div>
- <textarea onChange={this.getInput}></textarea>
- <button onClick={this.onSubmit}>submit</button>
- </div>
- );
- }
- }
- export default NewTweet;
- def create
- tweet = Tweet.new(create_params)
- tweet.user_id = current_user.id
- tweet.save
- end
- private
- def create_params
- params.require(:tweet).permit(:user_id, :tweet)
- end
- get 'tweets/index' => 'tweets#index'
- post 'tweets/create' => 'tweets#create'
Add Comment
Please, Sign In to add comment